Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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# EF单向外键关系_C#_Sql Server_Entity Framework_Foreign Key Relationship_Many To One - Fatal编程技术网

C# EF单向外键关系

C# EF单向外键关系,c#,sql-server,entity-framework,foreign-key-relationship,many-to-one,C#,Sql Server,Entity Framework,Foreign Key Relationship,Many To One,如果我有两个代码优先实体: 用户: 城市: 如何建立外键关系,以便用户表具有City\u名称FK,其中包含必须与City表中的一个名称对应的字符串?我不需要其他方向的引用,我只想确保dbo.Users中的City\u Name将来自dbo.Cities中的Name列 如果我只是使用这样的模型进行迁移,它将在dbo.Users中创建City\u Name列,插入工作正常,但是如果我想返回Userobj,City总是null,即使我手动使用dbContext.Entry(User.Reference

如果我有两个代码优先实体:

用户:

城市:

如何建立外键关系,以便用户表具有
City\u名称
FK,其中包含必须与City表中的一个名称对应的字符串?我不需要其他方向的引用,我只想确保
dbo.Users
中的
City\u Name
将来自
dbo.Cities
中的
Name

如果我只是使用这样的模型进行迁移,它将在
dbo.Users
中创建
City\u Name
列,插入工作正常,但是如果我想返回
User
obj,
City
总是
null
,即使我手动使用
dbContext.Entry(User.Reference)(u=>u.City.load())

对于我可能做错的事情有什么想法或见解,以及这种关系是如何在EF中实现的?

如下:

public class User 
{
  [Key]
  public int Id {get; set;}
  public string Name {get; set;}
  [ForeignKey("CityMappedToUser")]
  public string City_Name {get; set;}

  public virtual City CityMappedToUser{get; set;} 
}

msdn tbh上的解释非常好:

看起来您需要这样的东西:

public class User 
{
    public User() {}

    [Key]
    public int Id {get; set;}
    public string Name {get; set;}

    public string City_Name {get; set;}
    [ForeignKey("City_Name")]
    public virtual City City { get; set; }
}

public class City
{
    public City() {}
    [Key]
    public string Name {get; set;}
}

谢谢,我要试试。
public class User 
{
  [Key]
  public int Id {get; set;}
  public string Name {get; set;}
  [ForeignKey("CityMappedToUser")]
  public string City_Name {get; set;}

  public virtual City CityMappedToUser{get; set;} 
}
public class User 
{
    public User() {}

    [Key]
    public int Id {get; set;}
    public string Name {get; set;}

    public string City_Name {get; set;}
    [ForeignKey("City_Name")]
    public virtual City City { get; set; }
}

public class City
{
    public City() {}
    [Key]
    public string Name {get; set;}
}