Asp.net EF实例化数据库的原始查询一直失败
我通过实体框架将数据库实例化为“db”, 在我的aspx后面的c班 我就是这样做的:Asp.net EF实例化数据库的原始查询一直失败,asp.net,entity-framework,Asp.net,Entity Framework,我通过实体框架将数据库实例化为“db”, 在我的aspx后面的c班 我就是这样做的: var db = new fm_base_azure(); 行得通,我已经从数据库中取出了一些东西 现在,我只是尝试使用原始SQL查询从连接表中获取一些数据,但仍然会出现此错误 数据读取器与指定的“fm_app.meetingmember”不兼容。“Id”类型的成员在数据读取器中没有同名的对应列 代码如下: var memberObjects = db.meetingmember.SqlQuery("SEL
var db = new fm_base_azure();
行得通,我已经从数据库中取出了一些东西
现在,我只是尝试使用原始SQL查询从连接表中获取一些数据,但仍然会出现此错误
数据读取器与指定的“fm_app.meetingmember”不兼容。“Id”类型的成员在数据读取器中没有同名的对应列
代码如下:
var memberObjects = db.meetingmember.SqlQuery("SELECT e0.checkedin, e1.name
FROM meetingmember as e0 INNER JOIN member AS e1 ON e0.member = e1.id").ToList();
让我直截了当地说,这个查询是有效的。我在查询字符串中测试了它,它提取了正确的数据。
很明显,这是因为我做错了,我怀疑我使用了一个错误的引用或一些奇怪的东西。所以我让它工作了。基于对我原来帖子的评论。 我从表和联接表中选择了所有内容。。如你所见 var memberObjects=db.meetingmember.SqlQuerySELECT*FROM meetingmember作为e0内部加入成员作为e0.member=e1.id上的e1,其中e0.meeting=+meeting_id.ToList 然后我意识到。。因为我有实体框架,所以我的模型已经创建了引用,因为它注意到了外键 这意味着我最终只得到了这段代码: var memberObjects=db.meetingmember.SqlQuerySELECT*FROM meetingmember,其中meeting=+meeting_id.ToList 所以我不做任何连接,但我也不需要,因为表已经有了引用。因此,在一个foreach循环中,我最终完成了 memberObjects中的foreachmeetingmember m { m、 “ReferencedTable”。值 }
所以我成功了。基于对我原来帖子的评论。 我从表和联接表中选择了所有内容。。如你所见 var memberObjects=db.meetingmember.SqlQuerySELECT*FROM meetingmember作为e0内部加入成员作为e0.member=e1.id上的e1,其中e0.meeting=+meeting_id.ToList 然后我意识到。。因为我有实体框架,所以我的模型已经创建了引用,因为它注意到了外键 这意味着我最终只得到了这段代码: var memberObjects=db.meetingmember.SqlQuerySELECT*FROM meetingmember,其中meeting=+meeting_id.ToList 所以我不做任何连接,但我也不需要,因为表已经有了引用。因此,在一个foreach循环中,我最终完成了 memberObjects中的foreachmeetingmember m { m、 “ReferencedTable”。值 }
您是否尝试在SELECT语句中包含e0.id?您只能通过此方法具体化meetingmember对象。使用SELECT e0.*1:@haim770我没有尝试包含e0.id,而不是按名称选择列。。但是我不明白为什么我应该,我不需要e0.id。。我需要匹配e1.id,它在meetingmember中表示为外键e0.member。@GertArnold:我不知道你的确切意思,但我不是meetingmember吗?这就是我想从中得到的。。会议成员名单。你的意思是我不能加入?你试过在SELECT语句中包含e0.id吗?你只能通过此方法具体化meetingmember对象。不要按名称选择列,而是使用SELECT e0.*1:@haim770我没有尝试包含e0.id。。但是我不明白为什么我应该,我不需要e0.id。。我需要匹配e1.id,它在meetingmember中表示为外键e0.member。@GertArnold:我不知道你的确切意思,但我不是meetingmember吗?这就是我想从中得到的。。会议成员名单。你是说我不能加入?