我想使用實體框架5.第一個問題是EF自動創建表。我試圖通過包括 dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
來解決它。第二個問題是這樣的錯誤如何關閉實體框架5的複數表創建?
自從創建數據庫 以來,支持'CountryContext'上下文的模型已經更改。考慮使用Code First Migrations來更新數據庫 。
我試着通過dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
修復它,但沒有意義。 數據訪問層下一:
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;
}
}
附加信息:VS 2012,框架4.5,實體框架5.0.0.0 而對於EF 4它的工作原理是完美的(無OnModelCreating方法)。
完整的猜測,但在這裏不EF仍然承認耳鼻喉科作爲一個標識符,當你暗示它爲'Id'反對使用所有帽子這樣的:'ID' –