我有一个.NET Core 2.2 API项目。我正在尝试使用自定义属性设置一个 EF Model 类,这些属性不直接映射到表中的字段,通常会NULL
,但在单个实例中将自定义分配。
这是(概念上(我的模型:
public class SomeObject {
[Key]
public int ID { get; set; }
[NotMapped]
public string CustomField1 { get; set; }
[NotMapped]
public string CustomField2 { get; set; }
}
在代码的其他地方,我基本上是这样的:
return SomeObjects
.FromSql($@"select *, <custom mapping here> as CustomField1, <custom mapping here> as CustomField2 from [table name]")
我希望映射器能根据字段名称匹配在引擎盖下弄清楚,但这不起作用。
或者,我希望在Ruby on Rails或Laravel中使用map()
方法,在那里我可以做这样的事情:
return SomeObjects
.FromSql($@"select *, <custom mapping here> as CustomField1, <custom mapping here> as CustomField2 from [table name]")
.Map( o => { o.CustomField1 = CustomField1, o.CustomField2 = CustomField2 });
如果它存在并且我只是想念它,我不会感到惊讶。我无法找到任何关于它的文档,但也许我只是没有在谷歌上搜索正确的东西。
思潮?
尝试使用从实体类型继承的其他CustomFieldX
属性定义子类型,SomeObjects
以利用公共属性和映射。 我讨厌硬编码SQL(破坏ORM的主要目的之一(,并且更喜欢可以将子类型映射到的视图或存储过程。