Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架,与已有实体建立0-1关系_C#_Entity Framework - Fatal编程技术网

C# 实体框架,与已有实体建立0-1关系

C# 实体框架,与已有实体建立0-1关系,c#,entity-framework,C#,Entity Framework,我有一个现有实体用户。现在我正在尝试创建一个新实体联系人,与用户建立0-1关系 class联系人 { 公共int Id{get;set;} 公共字符串名称{get;set;} public int?UserId{get;set;} 公共虚拟用户用户{get;set;} } 所有建议都涉及以下内容: modelBuilder.Entity() .has可选(t=>t.TheUser) .与期权相关(u=>u.TheConatct); 但这意味着我们必须将OnAct属性添加到现有的用户实体中。实

我有一个现有实体用户。现在我正在尝试创建一个新实体联系人,与用户建立0-1关系

class联系人
{
公共int Id{get;set;}
公共字符串名称{get;set;}
public int?UserId{get;set;}
公共虚拟用户用户{get;set;}
}
所有建议都涉及以下内容:

modelBuilder.Entity()
.has可选(t=>t.TheUser)
.与期权相关(u=>u.TheConatct);
但这意味着我们必须将OnAct属性添加到现有的用户实体中。实际上,我不想对现有的实体进行任何修改。我需要定义一个外键表单Contact to User entity,并可以通过User属性从Contact访问用户实体

更新: 如果使用ForeignKey属性对属性进行注释:

然后,
ObjectContext.CreateDatabase()
的结果还将包括已存在表的create语句(取决于与用户有关系的实体)

当然,我们讨论的是“实体框架6代码优先”,同样,我对1-1关系也有同样的问题

我的想法是,我不能改变现有实体用户来为新实体联系人添加额外属性


我想知道是否有办法克服这个问题

< p>我不知道你使用的是哪个版本的实体框架,我假设你首先使用代码,但是你可能需要考虑使用一对多关系而不是0-1。
我不相信你想要的方式支持0-1,但是你可以通过一对多(即使你的“多”只能由1来模拟)

只需使用另一个重载:

modelBuilder.Entity<User>()
    .HasOptional(t => t.TheUser)
    .WithOptionalDependent();
modelBuilder.Entity()
.has可选(t=>t.TheUser)
.使用OptionalDependent();

他使用的EF版本具有0-1关系。不,这一点没有提及。这两个重载都使用OptionalDependent。
modelBuilder.Entity<User>()
    .HasOptional(t => t.TheUser)
    .WithOptionalDependent();