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