Entity Framework 5'i kullanmaya çalışıyorum. İlk sorun, EF tabloları otomatik olarak oluşturuyordu. dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
dahil ederek düzeltmeye çalıştım. İkinci sorun veritabanı oluşturulduktan sonra buEntity Framework 5 için tablo oluşturmayı nasıl çoğalt?
'CountryContext' bağlamı destek modeli gibi hata değişti oldu. Veritabanını güncellemek için Kod İlk Geçişlerini kullanmayı düşünün.
dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
ile düzeltmeyi denedim, ancak bir anlamı yok. veri erişim katmanı sonraki:
Table(Name = "tblCountries")]
public class Country
{
[Column(Name = "id", IsDbGenerated = true, IsPrimaryKey = true)]
public int Id {get;set;}
[Column(Name = "name")]
public string Name {get;set;}
}
public class CountryContext:DbContext
{
public CountryContext(string connStr):base(connStr)
{
}
public DbSet<Country> TblCountries { get; set; }
protected override void OnModelCreating(DbModelBuilder dbModelBuilder)
{
dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
}
public class CountryDal:BaseDal
{
public int CheckIsExist(Country country)
{
int id = 0;
using (var context = new CountryContext(ConnectionString))
{
var first = context.TblCountries.FirstOrDefault(el => el.Name == country.Name);
if (first != null)
{
id = first.Id;
}
}
return id;
}
}
Ek bilgi: VS 2012, çerçeve 4.5, varlık çerçevesi 5.0.0.0 Ve EF 4 için (OnModelCreating yöntemiyle olmadan) mükemmel çalışır.
Komple tahminim burada ama EF hala ent tanıyan var bir kimlik olarak itiraf etmeyin ki bunu 'Id' gibi TÜM CAPS kullanarak karşı: '' '' '' '' '' '' '' '' '' '' ' –