LINQ to SQL中的自连接以及继承

34 篇文章 0 订阅

大家好,在今天学习LINQ to SQL的时候,碰到了继承以及LINQ连接语句的一些难题.

最终,得到了解决.问题虽小但是,感觉里面所学到的东西不少.

所以希望能和大家分享.不足之处,高手多多赐教.

 

首先,介绍一下.需要解决问题

1.在 UI中向输出特定的一些数据,然而详细信息之中输出所有数据

2.运用继承来实现

 

表结构:

CREATE TABLE [dbo].[BBS](  [ID] [int] IDENTITY(1,1) NOT NULL,  [EndUserID] [int] NOT NULL,  [Title] [nvarchar](100) NOT NULL,  [Content] [nvarchar](1000) NOT NULL,  [WriteDate] [datetime] NOT NULL CONSTRAINT [DF_BBS_WriteDate]  DEFAULT (getdate()),  CONSTRAINT [PK_BBS] PRIMARY KEY CLUSTERED (  [ID] ASC )

 

然后,在dbml文件中创建3个类如下

 

第一个BBSDefault 根数据库中对应表结构是一样

第二个BBSBase为对应的父类

第三个BBSBaseContent为对应的子类

 

IQueryable<BBSBaseContent> infos = from o in context.BBSBase                                                join s in context.BBSDefault on o.ID equals s.ID                                                select new BBSBaseContent                                                {                                                    ID = s.ID,                                                    Title = s.Title,                                                    WriteDate = s.WriteDate,                                                    EndUserID = s.EndUserID,                                                    Content = s.Content                                                };

 

对应LINQ语句为如上.

首先要确定检索的是子类,然后进行自连接所要连接的是BBSDefault类

谢谢,

 

以上参考资料:http://www.cnblogs.com/Endink/archive/2008/05/07/1186588.html

欢迎大家,提出更好的解决方法.供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值