linqtosql视图存储过程

linqtosql视图存储过程

ID:34724139

大小:257.68 KB

页数:15页

时间:2019-03-10

linqtosql视图存储过程_第1页
linqtosql视图存储过程_第2页
linqtosql视图存储过程_第3页
linqtosql视图存储过程_第4页
linqtosql视图存储过程_第5页
资源描述:

《linqtosql视图存储过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、使用LINQ进行多表操作(一) 有时候我们需要对多张数据表进行一次性的Select操作。目前就我所知的操作方法有三种:1.直接写表达式;2.使用LoadOption选项;3.使用Join语句。那么,这三种语句用哪一种好呢?让我们来做一个小小的研究。。呱呱。。1:1关系的多表操作表结构如下 首先是测试取全记录的情况(也就是取所有字段)直接写表达式var user = context.Users.Where(p => p.UserID == 10300).Select(p => new {p, p.U

2、serData});SELECT [t0].[UserID], [t0].[Email], [t0].[NickName], [t2].[test], [t2].[UserID] AS [UserID2], [t2].[MyInfo], [t2].[MyFriends] FROM [dbo].[Users] AS [t0] LEFT OUTER JOIN (SELECT 1 AS [test], [t1].[UserID], [t1].[MyInfo], [t1].[MyFriends] FROM

3、 [dbo].[UserData] AS [t1]) AS [t2] ON [t2].[UserID] = [t0].[UserID]WHERE [t0].[UserID] = 10300使用LoadOption选项var option = new DataLoadOptions();option.LoadWith(p => p.UserData);context.LoadOptions = option;var user = context.Users.Where(p => p.Us

4、erID == 10300).Single();var userdata = user.UserData;虽然看上去取了2次数据,但是因为指定了LoadOption选项,所以也是一次性从数据库取出来的。SELECT [t0].[UserID], [t0].[Email], [t0].[NickName], [t2].[test], [t2].[UserID] AS [UserID2], [t2].[MyInfo], [t2].[MyFriends] FROM [dbo].[Users] AS [t

5、0]LEFT OUTER JOIN (SELECT 1 AS [test], [t1].[UserID], [t1].[MyInfo], [t1].[MyFriends] FROM [dbo].[UserData] AS [t1]) AS [t2] ON [t2].[UserID] = [t0].[UserID]WHERE [t0].[UserID] = 10300 使用Join语句var user = context.Users.Where(p => p.UserID == 10300).Joi

6、n(context.UserDatas, p => p.UserID, o => o.UserID, (o, p) => new { o, p });SELECT [t0].[UserID], [t0].[Email], [t0].[NickName], [t1].[UserID] AS [UserID2], [t1].[MyInfo], [t1].[MyFriends] FROM [dbo].[Users] AS [t0] INNER JOIN [dbo].[UserData] AS [t1] 

7、ON [t0].[UserID] = [t1].[UserID] WHERE [t0].[UserID] = 10300但是要注意的一点是,如果用了.Select(p=>new{p,p.UserData})这种代码,你在使用实体的时候会稍微麻烦一点,要采用user.p.UserID这种形式,非常不爽。可以这样改进一下,写成.Select(p=>new{User=p,p.UserData})这种形式,这样的话可以使用user.User.UserID来访问。如果想直接用user.UserID来访问的话

8、,就必须在new的时候为每一个属性赋名称,如果数据表字段很多的话,那我只能恭喜你中奖啦。    如果要我评分的话,我会这样评 SQL代码C#Select代码返回实例的易用性直接写表达式低高中使用LoadOption低低高使用Join语句高中中 如果只是要取部分字段的话,我们必须在Select的时候指定要取的字段,这样的话,在返回实例的易用性上,三种方式将是一样的效果。  SQL代码C#Select代码返回实例的易用性直接写表达式低高高使用LoadOption低低高使用Join语句高

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。