gpt4 book ai didi

c# - 从 Entity Framework 中的原始 SQL 查询返回多个相关实体类型

转载 作者:行者123 更新时间:2023-11-30 23:30:10 24 4
gpt4 key购买 nike

在 Entity Framework 中使用原始 SQL 查询。考虑到这两个相关的 EF 类,我的想法是否正确:

public partial class Campaign
{
public int CampaignId { get; set; }

public virtual ICollection<Quote> Quotes { get; set; }
}

public partial class Quote
{
public int QuoteId { get; set; }
public int CampaignId { get; set; }

public virtual Campaign Campaign { get; set; }
}

表由外键连接,对象由DB优先 Entity Framework 生成。

我无法发出将获取所有事件及其相关报价的原始查询?我试过这个:

string sqlQuery = "select * from Campaign c join Quote q on q.CampaignId = c.CampaignId";
var meh = Entities.Database.SqlQuery<Campaign>(sqlQuery);

这只会带回没有引号的事件。所以我猜这是不可行的,但我只是想检查一下我没有做错什么?

我无法在文档中找到明确的答案。而这个较旧的相关问题 Fetching complex objects by raw SQL query in Entity Framework有赞成票但没有答案。

人们认为这是 EF5 db.Database.SqlQuery mapping returned objects 的副本但有一个区别:我需要相关的嵌套实体而不是复杂类型。实际上,我想使用 SqlQuery 将相同的结果集返回给

Entities.Campaigns.Include(c => c.Quotes);

(如果你想知道这是为什么,因为我有一组更复杂的包含,它返回大量未请求的数据。似乎没有人能够解释为什么会发生这种情况,所以我正在类型转换轮到替代方法)

最佳答案

我认为您无法使用原始 SQL 查询来执行此操作。您正在尝试实现嵌套关系模型,其中 EF 提供了所有带有原始 sql 查询的模型映射,这显然会提供与您在数据库上运行 sql 查询所获得的相同的平面结果。您正在扼杀 Entity Framework 关系建模概念,并希望获得与 EF 提供的关系映射机制相同的结果

关于c# - 从 Entity Framework 中的原始 SQL 查询返回多个相关实体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35057233/

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