详细解决方案
MVC,linq,json,有关问题不知道如何描述,跪求
热度:9290 发布时间:2013-02-25 00:00:00
- C# code
[HttpPost] public ActionResult UserJson(int? id,int? page, int? rows, string model) { int Page = page ?? 1; int Rows = rows ?? 10; QueryModel QModel = null; Dictionary<string, object> JsonObj = new Dictionary<string, object>(); if (!string.IsNullOrWhiteSpace(model)) { QModel = IntelligentQuery.AjaxQueryConverter.ToQueryModel(model); } if (id.HasValue) { JsonObj.Add("total", UserRepository.Get(QModel).Where(w => w.Position.OrganID == id).Count()); } else { JsonObj.Add("total", UserRepository.Get(QModel).Count()); } if (id.HasValue) { JsonObj.Add("rows", UserRepository.Get(QModel, orderBy: o => o.OrderBy(u => u.Position.PositionLevel)).Where(w => w.Position.OrganID == id) .Skip((Page - 1) * Rows) .Take(Rows) .Select(s => new { s.UserNo,s.Password, s.RealName, s.Sex, s.Birthday, s.IDCardNumber, s.Height, s.IsDisabled, s.Country, s.DomicilePlace, s.IsMarried, s.PoliticsStatus, s.Education, s.GraduateSchool, s.Degree, s.DegreeBySchool, s.ResidentialAddress, s.Post, s.TelPhoneNumber, s.Email, s.QQ, s.MSN, s.JoinDate, s.PositionID, s.Position.PositionName,s.Position.Organization.OrganID, s.Position.Organization.OrganName, s.State, s.PayType, s.CheckType,s.IsSuper, s.Remark, s.IsEnable })); } else { JsonObj.Add("rows", UserRepository.Get(QModel, orderBy: o => o.OrderBy(u => u.Position.PositionLevel)) .Skip((Page - 1) * Rows) .Take(Rows) .Select(s => new { s.UserNo, s.Password, s.RealName, s.Sex, s.Birthday, s.IDCardNumber, s.Height, s.IsDisabled, s.Country, s.DomicilePlace, s.IsMarried, s.PoliticsStatus, s.Education, s.GraduateSchool, s.Degree, s.DegreeBySchool, s.ResidentialAddress, s.Post, s.TelPhoneNumber, s.Email, s.QQ, s.MSN, s.JoinDate, s.PositionID, s.Position.PositionName, s.Position.Organization.OrganID, s.Position.Organization.OrganName, s.State, s.PayType, s.CheckType, s.IsSuper, s.Remark, s.IsEnable })); } Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter();//这里使用自定义日期格式,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd";//设置时间格式 string json = Newtonsoft.Json.JsonConvert.SerializeObject(JsonObj, Newtonsoft.Json.Formatting.Indented, timeConverter);//转换序列化的对象 return Content(json, "application/json"); }
以上方法,是用来获取前台dagagrid的数据源的。
我想问的问题有2个。
第一个问题:
User实体,有属性PositionID,与Position实体外键关联。那么,若只需要取得User实体的值,则可以把.Select()直接去掉。但是当除了需要获取User实体的所有值,还需要获取用“PositionID”关联的Position实体中的“PositionName”时,就必须在.Select()中将User的每个属性罗列一次,并且加上s.Position.PositionName吗?
这样操作起来,如果User实体属性很多,岂不是很麻烦啊,不知道有没有简便方法?
第二个问题:
User实体,有属性PayType,由于数据库设计问题,不能与基础数据表进行外键关联。也就是需要left join。可我查了一下,Lambda表达式中的group join比较麻烦,只left join一次的话,代码尚可看清楚,要是多次,那就非常不便且完全没有可读性了。我要问的是,按照上面我给出的代码来看,有什么解决方法吗?难道必须left join么。
------解决方案--------------------------------------------------------
第一个问题,用include
相关解决方案
- (Struts2+JSON+Ajax) XMLHttpRequest ==500如何解决
- json 解析有关问题
- struts2-json中诠注@JSON(deserialize=false)是什么用?不是阻止JSON反序列化成JAVA对象吗?求解
- 请教哪里可以上到 struts2-json-plugin-2.1.8的源文件
- java+jquery easy ui + json + struts分页例子
- ssh json jar 有关问题
- json 有关问题
- AJAX 传递数据如何样才可以是 json
- jquery.load(*json) 解析不已。求帮忙
- JSON,AJAX
- 2中,可是一直发生java.lang.NoClassDefFoundError: net/sf/json/
- json 转成 string解决办法
- json ,Map转json,全部分了
- LINQ to sQL:业务层多个Class Library,or 只用一个?该如何解决
- jquery ajax+json(插件) 提交数据,让人捉摸不透的是:【部分中文显示问号】,该怎么解决
- LINQ in Action 电子书上载 附送书中源码 C# VB
- Linq 代码生成器 发布了。而且还是在线生成的。该如何解决
- Linq 代码生成器 公布了。而且还是在线生成的
- VC++,里面会用到 ajax ,jquery linq 吗?解决思路
- Linq 初学,问个有关问题.
- json 序列化有错误怎么办
- Linq To Sql的有关问题(关于同步更新)
- Linq 求转换。
- linq 分组求和解决思路
- JQUERY json 传值有关问题
- 获取 天候Api 返回的 json 数据
- MVC(Json) 出现提示上载
- linq 中如何表达 SQL中的 not in
- linq 施用 SqlParameter
- 命名空间“System”中不存在部类或命名空间名称“Linq”(是缺少程序集引用吗?)