私はEntity Framework 5を使用しようとしています。最初の問題は、EFがテーブルを自動的に作成することでした。私は dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
を含めて修正しようとしました。 2番目の問題はこのようなエラーでしたEntity Framework 5の複数テーブルの作成をオフにするにはどうすればよいですか?
データベースが作成されて以来、 'CountryContext'コンテキストをサポートするモデルが変更されました。 データベースを更新するには、コードの最初の移行を使用することを検討してください。
私は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として暗示するときにIDとして使用する:' ID' –