C# 如何在EF模型中不包含外键的情况下从一对多表列中获取值
我有两个表t1一对多T2: T1表 主密钥 名称 起始日期 结束日期 T2表 主密钥 T1ID这是数据库中的外键,因为im使用3.5.net framework,所以我不能使用实体框架包含外键 StoreIDnvarchar 如何获取属于T1表中一行的所有T2 StoreID 我有以下代码从T1获取特定行:C# 如何在EF模型中不包含外键的情况下从一对多表列中获取值,c#,sql,asp.net,entity-framework,C#,Sql,Asp.net,Entity Framework,我有两个表t1一对多T2: T1表 主密钥 名称 起始日期 结束日期 T2表 主密钥 T1ID这是数据库中的外键,因为im使用3.5.net framework,所以我不能使用实体框架包含外键 StoreIDnvarchar 如何获取属于T1表中一行的所有T2 StoreID 我有以下代码从T1获取特定行: public t1 GetT1ByID(string name) { return db.t1.FirstOrDefault(m => m.
public t1 GetT1ByID(string name)
{
return db.t1.FirstOrDefault(m => m.Name.ToLower() == name.ToLower());
}
下面是代码隐藏:
Repository rep = new Repository();
string namn = SPContext.Current.Web.Title;
var allItems = rep.GetT1ByID(namn);
我尝试了以下几点:
foreach (var items in allItems.t2)
{
storeID.Text += items.storeID;
}
var t2 = db.t2s.Find(t2ID);
var t1s = db.t1s.Where(m => m.t2NavProperty == t2);
但是我什么也得不到,因为allItems里面什么都没有
感谢您提供的任何帮助。首先,当您对如何通过LINQ或实体框架检索某些内容有疑问时,我们需要的是您的类,而不是表模式。这两个属性不一定相同,尤其是在本例中,导航属性不会在表模式中表示 也就是说,如果您没有显式属性来保存实体上的外键,那么您将不得不比较整个对象。同样,很难给出您可以使用的实际代码,因为您的问题中不包括您的实体,但大致上您需要以下内容:
foreach (var items in allItems.t2)
{
storeID.Text += items.storeID;
}
var t2 = db.t2s.Find(t2ID);
var t1s = db.t1s.Where(m => m.t2NavProperty == t2);
@Ehssansajjad看起来怎么样?只需谷歌linq加入两个tables@EhsanSajjad是的,但如果实体框架中没有外键列,我如何使用linq通过join从T1中的特定行获取所有storeID?我只有导航属性可供选择你是否尝试过搜索,谷歌上有很多例子是的,我已经做过了