如何使Entity Framework SqlQuery返回匿名类型。
现在,我运行context.TheObject.SqlQuery()RAW查询。该查询联接了两个表,我想返回联接表的结果。
context.TheObject.SqlQuery()
如果我将其与某种类型一起使用,则context.TheObject.SqlQuery()只会看到相同类型的表的结果。
我试过了db.Database.SqlQuery<DbResults>("the sql query here"); 使用与结果的对象匹配的预定义类,但所有字段均为null。
db.Database.SqlQuery<DbResults>("the sql query here")
将实体框架6与MySQL结合使用。
我在这里忙个不停,将尝试解决您的根本问题,而不是直接回答您的问题。
带有预定义类的方案 应该可以正常工作 。一个可能的陷阱是列名和类的属性不匹配。
示例代码(LinqPad)
var results = Database.SqlQuery<TestResult>("select r.Name, b.BankName from relation r inner join BankAccount b on b.RelationId = r.Id where r.Id = 2"); results.Dump(); } public class TestResult { public string Name { get; set; } public string BankName { get; set; }
我强烈建议您使用显式类型重新访问有问题的代码。
直接回答您的问题:不,您不能从SqlQuery返回匿名类型。您可以做的最好的事情就是构建 动态对象 ,但是不幸的是,这需要使用TypeBuilder进行大量的手工工作。