【发布时间】:2013-01-25 04:26:52
【问题描述】:
型号:
public class User
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
}
public class Resource
{
[Key]
public int ResourceId { get; set; }
public string ResourceName { get; set; }
public string ResourceDescription { get; set; }
}
public class UserResource
{
[Key, Column(Order=0)]
public int UserId { get; set; }
[Key, Column(Order=1)]
public int ResourceId { get; set; }
public int ResourceQuantity { get; set; }
}
对于给定的“UserId”,我想从 Resource 模型中选择“ResourceName”,从 UserResource 模型中选择“ResourceQuantity”。 另外,一旦被选中,我是否需要一个全新的模型来只承载这两个指定的列?
还请注意,UserResource 模型有一个复合键,所以我对如何进行连接感到困惑......这是对的吗?
var userResources =
from r in imDB.Resources
join ur in imDB.UserResources
on r.ResourceId equals ur.ResourceId
select new { r.ResourceName, ur.ResourceQuantity };
【问题讨论】:
-
你能解释一下你的业务场景吗?如果您需要在必须具有 M:M 关系时使用复合键(作为连接模型)。您的其他具有多种关系的模型是什么?
-
嗨,我的另一个模型是一个非常简单的模型,叫做 User。 UserResource 模型加入了 User 和 Resource 模型。我更新了模型。
-
你是先有代码还是什么?您使用的是哪个 EF 版本?
-
是 Code First,最新的 EF (5)
标签: linq entity-framework ef-code-first many-to-many entity-framework-5