저는 가계를 관리하기 위해 매우 간단한 MVC 애플리케이션을 만들고 있습니다. 이전에는 항상 MVC 모델 생성기 (GUI)에서 데이터 모델을 만들거나 이미 만들어진 SQL 테이블을 가져올 것입니다.키 속성이 있음에도 키 정의 오류가 없습니다.
이번에는 코드 첫 번째 접근 방식을 사용하고 싶었습니다.
본인은 당신에게 법인의 예를 줄 것이다 :
public class Expense {
[Key]
public int ExpenseId;
public double ExpenseValue;
public DateTime ExpenseDate;
public string ExpenseDescription;
public ExpenseType ExpenseType;
public Currency ExpenseCurrency;
public List<ExpenseUser> Users;
}
그리고 내 DbContext 파생 된 개체 :
public class HawsContext : DbContext {
public DbSet<Expense> Expenses { get; set; }
public DbSet<ExpenseType> ExpenseTypes { get; set; }
public DbSet<ExpenseUser> ExpenseUsers { get; set; }
public ExpenseUser GetUserByUserName(string userName) {
return ExpenseUsers.Where(u => u.UserName == userName).FirstOrDefault();
}
}
나는 다음과 같은 오류가 나타납니다 객체 인스턴스화 할 때마다 :
을One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'Expense' has no key defined. Define the key for this EntityType. \tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'ExpenseType' has no key defined. Define the key for this EntityType. \tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'ExpenseUser' has no key defined. Define the key for this EntityType. \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'Expenses' is based on type 'Expense' that has no keys defined. \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'ExpenseTypes' is based on type 'ExpenseType' that has no keys defined. \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'ExpenseUsers' is based on type 'ExpenseUser' that has no keys defined.
내가 뭘 잘못하고 있니? 모든 엔티티에는 [Key]가 각각의 키 앞에 있으며, 모든 것은 오류나 경고없이 컴파일됩니다. 문맥을 인스턴스화 한 후에는 작동하지 않습니다. 실제로 생성 될 때 (실제로 SQL 테이블이 실제로 생성되지는 않았습니다)
오류에서 세 가지 개체 모두이 문제가있는 것으로 보입니다 ... 비용뿐만이 아닙니다. – idipous