C# EF core FromSql自定义属性绑定
让我们假设我有以下类:C# EF core FromSql自定义属性绑定,c#,entity-framework,C#,Entity Framework,让我们假设我有以下类: public class Person { public int Id { get; set; } public string Name { get; set; } [NotMapped] public bool Code { get; set; } } 属性code不是列,而是通过SQL查询计算出来的。 我想使用FromSql方法将属性code绑定到我的Person类型。 大概是这样的: var result = db.Person
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
[NotMapped]
public bool Code { get; set; }
}
属性code
不是列,而是通过SQL查询计算出来的。
我想使用FromSql
方法将属性code
绑定到我的Person
类型。
大概是这样的:
var result = db.Person
.FromSql("select Id, Name, 'Roar' as Code from Persons")
.Select(x => new Person
{
Id = x.Id,
Name = x.Name,
Code = EF.Property<string>(x, "Code")
}).ToList();
var result=db.Person
.FromSql(“选择Id、Name、“Roar”作为来自Persons的代码”)
.选择(x=>new Person
{
Id=x.Id,
Name=x.Name,
代码=有效属性(x,“代码”)
}).ToList();
有没有办法将自定义SQL查询变量绑定到对象属性?多亏了。解决这个问题的方法是删除NotMapped
属性。
但是,为了避免删除NotMapped
属性,可以使用LINQ表达式,以便code
获取其值
基本上,如果您想使用复杂的自定义SQL查询,最好的方法是使用ADO.NET。我认为这在EF Core中是不可能的,比如“SQL查询只能用于返回作为模型一部分的实体类型”该列不是模型的一部分。当我创建“几何体”列并尝试映射计算出的距离后,出现了相同的问题