您应该创建自己的类型以返回。
public class MyReturnType
{
public Application App { get; set; }
public License License { get; set; }
}
public static MyReturnType GetAppDetails(AppsLight item)
{
using (ApplicationEntities db = new ApplicationEntities())
{
var retval = (from t in db.Applications
join g in db.Licenses on t.LicenseID equals g.LicenseID
where t.AppID == item.UID
select new MyReturnType
{
App = t,
License = l
}).FirstOrDefault();
return retVal;
}
}
如果您已正确配置外键,则不需要执行显式连接,并且可以执行类似操作。
public static Application GetAppDetails(AppsLight item)
{
using (ApplicationEntities db = new ApplicationEntities())
{
var application = (from t in db.Applications
where t.AppID == item.UID
select new MyReturnType)
.Include(x => x.License)
.FirstOrDefault();
//application should have a .License property.
return application;
}
}
如果你不希望创建一个新的类型,你也可以只使用Tuple
:
public static Tuple<Application, License> GetAppDetails(AppsLight item)
{
using (ApplicationEntities db = new ApplicationEntities())
{
var tuple = (from t in db.Applications
join g in db.Licenses on t.LicenseID equals g.LicenseID
where t.AppID == item.UID
select Tuple.Create(t, l))
.FirstOrDefault();
return tuple;
//access the items in the tuple like this: tuple.Item1; tuple.Item2;
}
}
我的问题是数据库不是我的,并且在表格之间创建了基本上为零的关系...而是设计者将后缀名为“_FK”的字段命名为表示与其他表格的关系。真的很伤心,但我不拥有它,所以我无法对约束或关系做任何事情。我会测试你的解决方案,并让你知道很快! :) – MaxOvrdrv 2015-04-02 14:25:23
工作得很好!谢谢! – MaxOvrdrv 2015-04-02 18:24:58