Entity framework 实体代码第一个零或一对零或一关系
管理实体代码前零或一对零或一关系的解决方案是什么 我想拥有这两个实体的资产净值 我已经使用数据注释进行了测试:Entity framework 实体代码第一个零或一对零或一关系,entity-framework,relationship,code-first,Entity Framework,Relationship,Code First,管理实体代码前零或一对零或一关系的解决方案是什么 我想拥有这两个实体的资产净值 我已经使用数据注释进行了测试: public class class1() { public int Id {get;set;} public virtual Class2 Class2 {get;set;} } public class class2() { public int Id {get;set;} public int? Class1Id {get;set;} [
public class class1()
{
public int Id {get;set;}
public virtual Class2 Class2 {get;set;}
}
public class class2()
{
public int Id {get;set;}
public int? Class1Id {get;set;}
[Required, ForeignKey("Class1Id")]
public Class1 Class1 {get;set;}
}
我总是有一条错误消息:“Class1\u Class2\u Target::在关系“Class2\u Class1”中的角色“Class2\u Class1\u Target”中多重性无效。因为依赖角色属性不是关键属性,所以依赖角色的多重性上限必须为“*”
我找到了使用fluent API的示例,但如果可能的话,我希望使用数据注释。实际上,对于所有使用fluent api的示例,都有一个导航属性,但int外键会从类中删除:
class Class1Map : EntityTypeConfiguration<Class1>
{
public Class1Map()
{
this.HasKey(c => c.Id);
this.Property(c => c.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.HasRequired(c1 => c1.Class2).WithRequiredPrincipal(c2 => c2.Class1);
}
}
public class Class1()
{
public int Id {get;set;}
public virtual Class2 Class2 {get;set;}
}
public class Class2()
{
public int Id {get;set;}
/* Missing Class2Id Property */
public virtual Class1 Class1 {get;set;}
}
class ClassMap:EntityTypeConfiguration
{
公共地图()
{
this.HasKey(c=>c.Id);
this.Property(c=>c.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.HasRequired(c1=>c1.Class2)。带有RequiredPrincipal(c2=>c2.Class1);
}
}
公共类1()
{
公共int Id{get;set;}
公共虚拟类2类2{get;set;}
}
公共类2()
{
公共int Id{get;set;}
/*缺少Class2Id属性*/
公共虚拟类1{get;set;}
}
关于这方面的文章有很多,所以我建议你在问这样的一般性问题之前,再多读一点文章和谷歌搜索。一个非常常见的问题:到目前为止你尝试了什么?为了帮助你自己的研究,这种关系可以称为可选关系或可选关系