Entity framework- EF 代码优先 Select 外键
Entity framework- EF Code First Select foreign key
型号:
public class Address
{
[Key]
public long AddressId { get; set; }
public string Street { get; set; }
public string Town { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
public class User
{
[Key]
public long UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public virtual List<Address> Addresses { get; set; }
}
数据库上下文:
public class DataModelContext : DbContext
{
public DbSet<Address> Addresses { get; set; }
public DbSet<User> Users{ get; set; }
}
使用上面的代码为数据库创建这个模式。
Addresses Users
----------- -------
AddressId(PK) UserId(PK)
Street UserName
Town Password
State
Country
User_UserId(FK)
现在我想从地址 table 访问 User_UserId,但那里没有显示任何 属性。它给出错误“地址不包含 User_UserId 的定义......
using (var db = new DataModelContext())
{
db.Addresses.Select(x=>x.User_UserId).ToList();
}
在创建模型时使用Foreign-Key关联而不是独立关联。这意味着,您必须在模型中包含外键 属性 以及相应的导航 属性。例如:
public class Address
{
...
public int UserId {get; set;} //Foreign-Key property
[ForeignKey("UserId")]
public virtual User User { get; set; } // Navigational Property
...
}
阅读 this article 了解更多信息。
型号:
public class Address
{
[Key]
public long AddressId { get; set; }
public string Street { get; set; }
public string Town { get; set; }
public string State { get; set; }
public string Country { get; set; }
}
public class User
{
[Key]
public long UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public virtual List<Address> Addresses { get; set; }
}
数据库上下文:
public class DataModelContext : DbContext
{
public DbSet<Address> Addresses { get; set; }
public DbSet<User> Users{ get; set; }
}
使用上面的代码为数据库创建这个模式。
Addresses Users
----------- -------
AddressId(PK) UserId(PK)
Street UserName
Town Password
State
Country
User_UserId(FK)
现在我想从地址 table 访问 User_UserId,但那里没有显示任何 属性。它给出错误“地址不包含 User_UserId 的定义......
using (var db = new DataModelContext())
{
db.Addresses.Select(x=>x.User_UserId).ToList();
}
在创建模型时使用Foreign-Key关联而不是独立关联。这意味着,您必须在模型中包含外键 属性 以及相应的导航 属性。例如:
public class Address
{
...
public int UserId {get; set;} //Foreign-Key property
[ForeignKey("UserId")]
public virtual User User { get; set; } // Navigational Property
...
}
阅读 this article 了解更多信息。