大家好,在今天学习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
欢迎大家,提出更好的解决方法.供参考