【发布时间】:2017-09-13 13:07:21
【问题描述】:
我有这个查询
from Room in PMSdb.Room_Tbl
join Res in PMSdb.Reservation_Tbl on
Room.Room_ID equals Res.Room_ID
into ej
from Res in ej.DefaultIfEmpty()
join Feature in PMSdb.Room_Features_Tbl on
Room.Room_Features.Split(',').Contains(Feature.Room_Features_ID.ToString())
into FE
from Feature in FE.DefaultIfEmpty()
select new
{
Room = Room.Room_Number,
Room_type = RoomType.Room_Type_Code
Feature =Feature.Feature_Name}
我需要这样做
Room.Room_Features.Split(',').Contains(Feature.Room_Features_ID.ToString()) 但它拒绝
我该怎么做?
【问题讨论】:
-
那么
Room_Features是逗号分隔的功能列表吗?如果是这样,简短的回答是“不要那样做”。相反,您应该有一个RoomFeatures表,它有两列(Room_ID 和 Feature_ID),这样您就可以在 Room 和 Feature 之间建立多对多关系。 -
@GertArnold 如您所说,如何首先创建变量?因为我没有它,它是动态的
-
linq-to-sql / entity-framework - 是哪一个?
-
是的,但是为什么呢?这是一个糟糕的设计。 RoomFeatures 应该是一个单独的表。
-
您可能只需要获取数据到客户端并在那里运行 String.Split,然后在客户端上执行其余的逻辑。
标签: c# entity-framework linq linq-to-sql