C#代码(EF6代码优先):
public class ProjectSourceProject
{
[Key, Column(Order = 0)]
//[Key, Column(Order = 0), ForeignKey("ProjectSource")]
//[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ProjectSource_id { get; set; } // { get; set; } was missing :)
[Key, Column(Order = 1)]
//[Key, Column(Order = 1), ForeignKey("Project")]
//[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Project_id { get; set; } // { get; set; } was missing :)
//public Virtual ICollection<Project> projects { get; set; }
//public Virtual ICollection<ProjectSource> projectSources { get; set; }
public ProjectSourceProject()
{
//projects = new HashSet<Project>();
//projectSources = new HashSet<ProjectSource>();
}
}
数据库:
One or more validation errors were detected during model generation: EntityType 'ProjectSourceProject' has no key defined. Define the key for this EntityType.
C#代码2:
public class ProjectSourceProject
{
//[Key]
//[Key, Column(Order = 0)]
public int ProjectSource_id { get; set; } // { get; set; } was missing :)
//[Key]
//[Key, Column(Order = 1)]
public int Project_id { get; set; } // { get; set; } was missing :)
public ProjectSourceProject()
{
}
}
和
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ProjectSourceProject>()
.HasKey(psp => new { psp.ProjectSource_id, psp.Project_id });
//base.OnModelCreating(modelBuilder);
}
得到以下奇怪的错误:
The properties expression 'psp => new <>f__AnonymousType0`2(ProjectSource_id = psp.ProjectSource_id, Project_id = psp.Project_id)' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new { t.MyProperty1, t.MyProperty2 }' VB.Net: 'Function(t) New With { t.MyProperty1, t.MyProperty2 }'.
编辑:问题修复,谢谢莫霍:)
这适用于这两种情况.
制作PK字段属性……[Key, Column(Order = 0), ForeignKey("ProjectSource_projects_Source")]
public int ProjectSource_id { get; set;} // add { get; set; }
[Key, Column(Order = 1), ForeignKey("ProjectSource_projects_Target")]
public int Project_id { get; set;} // add { get; set; }
查看更多关于c# – EntityType没有定义键的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did69409