Entity Framework 5를 사용하려고합니다. 첫 번째 문제는 EF가 테이블을 자동으로 생성한다는 것입니다. 나는 dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
을 포함시켜 그것을 고치려고했다. 두 번째 문제는 다음과 같은 오류입니다.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는 여전히 ENT를 인식 않습니다 'ID'와 같이 모든 식별자를 사용하는 것에 반대하는 ID로 암시 할 때 ID : –