gpt4 book ai didi

c# - 在 Entity Framework 中使用 SqlQuery RAW 查询返回匿名类型

转载 作者:可可西里 更新时间:2023-11-01 07:13:20 25 4
gpt4 key购买 nike

如何使 Entity Framework SqlQuery 返回匿名类型。

现在我运行一个 context.TheObject.SqlQuery()原始查询。查询连接两个表,我想返回连接表的结果。

如果我将它与类型 context.TheObject.SqlQuery() 一起使用我只能看到相同类型的表的结果。

我试过了 db.Database.SqlQuery<DbResults>("the sql query here") ;使用与结果对象匹配的预定义类,但所有字段均为空。

将 Entity Framework 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 进行大量手动工作。参见 http://www.codeproject.com/Articles/206416/Use-dynamic-type-in-Entity-Framework-SqlQuery获取样本。

关于c# - 在 Entity Framework 中使用 SqlQuery RAW 查询返回匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29852912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com