gpt4 book ai didi

c# - EF 自定义结果集映射

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:40 25 4
gpt4 key购买 nike

我想知道是否有一种方法,使用 Entity Framework,映射来自任意 sql 的结果,例如 ResultSetMapping在学说中。我知道我可以创建一个配置类来进行映射,但这需要我将该类注册为实体类型。我想做的是利用 EF 的具体化元素(对象服务),而不使用 EF 的其余部分。有时我从 proc 的结果中得到的列名称含糊不清或意义不大,但需要映射到具有更有意义的属性名称但无权更改 proc 定义的类,例如:

exec dbo.getRecDetail @var 

返回列:

sd, ed, nm, ....

应该映射到一个类,例如:

  class Obj{
public DateTime StartDate; //sd
public DateTime EndDate; //ed
public String Name; //nm
....
}

最佳答案

如果您使用 .EDMX 文件(设计器)和数据库优先方法,您可以将存储过程导入模型(只需在向导中选择存储过程)和 map their results to complex types

它实际上也适用于任意 SQL 查询,但这些查询无法自动导入到模型中(因为它们不存在于您的数据库中)。它需要手动修改 EDMX 文件中的存储模型(它是 XML - 检查 Function and CommandText elements 的文档)。一旦这样做,您就不能再使用设计器的数据库更新功能,因为它会删除您的自定义查询。

如果您首先使用代码,则目前没有映射存储过程或自定义查询结果的选项。您只能使用自动映射,这要求您的类具有与结果集中的列名称完全相同的属性。

关于c# - EF 自定义结果集映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047287/

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