gpt4 book ai didi

c# - EntityType 没有定义键

转载 作者:行者123 更新时间:2023-11-30 12:45:58 24 4
gpt4 key购买 nike

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>();
}
}

数据库:

Table with all keys

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 }'.

已编辑:问题已解决,感谢 Moho :)

这在这两种情况下都有效。

最佳答案

制作主键字段属性...

[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 没有定义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21933097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com