我正在寫一個ASP.NET MVC網站,我正在使用LINQ to SQL來訪問我的SQL Server數據庫。在我的數據庫,我有以下表格:是否適合在LINQ to SQL中完成此類功能?
帖子:
- 帖子ID - INT,PK,身份
- 文本 - 爲nvarchar(MAX)
- PublishDate - 日期時間
- 等
PostTags:
- PostTagID - INT,PK,身份
- 帖子ID - FK來PK,以崗位表
- 標籤識別 - FK來PK到標籤表
標籤:
- 標籤識別 - INT,PK,身份
- 標籤名 - VARCHAR(100)
每個職位至少要有1標籤,所以這是一個單一對多關係。
我正試圖建立一個標籤搜索功能。我想接受標籤作爲參數和返回前25個標籤爲,由PublishDate降序排列的帖子。這裏是我當前的LINQ to SQL代碼:
var query = (from post in db.Posts
join posttag in db.PostTags
on post.PostID equals posttag.PostID
where posttag.Tag.TagName==tag
select post).OrderByDescending(p=>p.DateOfPublish).Take(25);
不過,我認爲我的代碼是錯誤的,因爲它似乎不尊重帖子和標籤之間的單一對多的關係。
我該如何改進我的代碼?提前致謝!
與其簡單地說「它不工作」,您應該發佈您的預期結果以及實際得到的結果。 – 2010-09-05 22:13:47
@Adam我沒有測試代碼,但我很確定它不會工作,因爲PostTags中可能有多個記錄具有相同的PostID。 – 2010-09-05 22:18:40
我的錢在數據上。你能否給我們一些樣本記錄並顯示哪些記錄(如果有的話)被退回? – SteveCav 2010-09-05 22:24:19