Ida*_*ter 5 .net c# mysql sql entity-framework
如何使Entity Framework SqlQuery返回匿名类型.
现在我运行context.TheObject.SqlQuery()RAW查询.查询连接两个表,我想返回连接表的结果.
如果我使用类型context.TheObject.SqlQuery()I我只能看到相同类型的表的结果.
我试过了db.Database.SqlQuery<DbResults>("the sql query here"); 使用与结果对象匹配的预定义类,但所有字段均为null.
使用Entity Framework 6和MySQL.
Pau*_*Jan 12
我在这里走出困境,并试图解决你的根本问题,而不是直接回答你的问题.
您使用预定义类的方案应该有效.一个可能的缺陷是列名和类的属性不匹配.
示例代码(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; }
Run Code Online (Sandbox Code Playgroud)
我强烈建议您使用显式类型重新访问有问题的代码.
直接回答你的问题:不,你不能从SqlQuery返回匿名类型.您可以做的最好的是构建动态对象,但不幸的是,使用TypeBuilder需要相当多的手动工作.有关示例,请参见http://www.codeproject.com/Articles/206416/Use-dynamic-type-in-Entity-Framework-SqlQuery.