MVC新入门,使用linq模型直接导入数据表后,外键关系也自动建立起来。我只想返回一两个表的关系,结果追踪发现方法会自动把所有关联表数据全部导入到对象中,如果对应数据多的话,对效能是不是有很大影响?如何解决
比如
return db.aspnet_User.SingleOrDefault(d => d.UserName == UserName)
我预期的目的是只返回这个表的数据,结果追踪发现方法会把其他表的关联数据也导进来
之前还傻乎乎的这么写 public FullUserModelList FindAllUsers()
{
var fullUserModel = from aU in db.aspnet_User
join aMs in db.aspnet_Membership on aU.UserId equals aMs.UserId
join ue in db.M_UserExpand on aU.UserId equals ue.UserID
join aUIR in db.aspnet_UsersInRoles on aMs.UserId equals aUIR.UserId
join aR in db.aspnet_Roles on aUIR.RoleId equals aR.RoleId
orderby aMs.CreateDate
select new FullUserModel
{
aspnet_User = aU,
aspnet_Membership = aMs,
aspnet_UsersInRoles = aUIR,
aspnet_Roles = aR,
M_UserExpand = ue
};
return new FullUserModelList { FullUserModel = fullUserModel };
}
比如
return db.aspnet_User.SingleOrDefault(d => d.UserName == UserName)
我预期的目的是只返回这个表的数据,结果追踪发现方法会把其他表的关联数据也导进来
之前还傻乎乎的这么写 public FullUserModelList FindAllUsers()
{
var fullUserModel = from aU in db.aspnet_User
join aMs in db.aspnet_Membership on aU.UserId equals aMs.UserId
join ue in db.M_UserExpand on aU.UserId equals ue.UserID
join aUIR in db.aspnet_UsersInRoles on aMs.UserId equals aUIR.UserId
join aR in db.aspnet_Roles on aUIR.RoleId equals aR.RoleId
orderby aMs.CreateDate
select new FullUserModel
{
aspnet_User = aU,
aspnet_Membership = aMs,
aspnet_UsersInRoles = aUIR,
aspnet_Roles = aR,
M_UserExpand = ue
};
return new FullUserModelList { FullUserModel = fullUserModel };
}
解决方案 »
- 鼠标放到链接上,弹出个提示页面,像这样的提示页面,怎么做
- Gridview删除的时候提示Index was out of range
- GridView内有ItemTemplate时的问题...........................
- vb6转.net的问题,帮忙看看那
- 到我散分了~~~~~
- 急!各位兄弟姐妹帮忙!DataGrid的删除行问题!
- 为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制
- 调用VC写的DLL出错,是什么原因?
- 把很多字段显示到网页上
- 有人用WEB MATRIX 吗?
- ListItem数组问题
- office方法没有采用“0”个参数的重载
var b = new Modular.SparePartsModular();
var re = b.GetALL();//查询出库存上下限
var dt = ifs.getPorts(out _total, page, rows, no, desc, null).Tables[0];//ERP备件信息
var ps = from d in dt.AsEnumerable()
join r in re on d.Field<string>("part_no") equals r.IFSID into joinedEmpDept
from dept in joinedEmpDept.DefaultIfEmpty()
select new
{
IFSID = d.Field<string>("part_no"),
Description = d.Field<string>("Description"),
Num = d.Field<decimal>("count_variance"),
Unit = d.Field<string>("unit_meas"),
IN_TRANSIT = d.Field<decimal>("IN_TRANSIT"),
Price = d.Field<decimal>("price"),
MAX = dept != null ? dept.MAX : 0,
MIN = dept != null ? dept.MIN : 0,
interval = d.Field<decimal>("count_variance") > (dept != null ? dept.MIN : 0) ? 1 : 0//1安全,0不安全
};