Entity Framework 核心,自定义 sql 没有 select 预期值
Entity Framework Core, custom sql doesn't select expected value
我想 select 一个值取决于另一个 table 和自定义 sql。如果另一个 table 中的条目存在,则值为 1,否则为 NULL。 sql 在 SQL Server Management Studio 中工作得很好。但是当我在我的应用程序中 运行 它时,我总是得到 NULL。
这是我的模型的代码:
[Table("Projects")]
public class ProjectsModel
{
[Required(ErrorMessage = "Angabe der ID ist erforderlich.")]
[Display(Name = "Lfd")]
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Name ist erforderlich.")]
[Display(Name = "Name")]
public string Name { get; set; }
[NotMapped]
public bool? userAtProject { get; set; }
}
这是我的习惯 sql:
var Projects = _context.Projects.FromSql("
SELECT p.Id, p.Name, (
SELECT 1 AS Expr1 FROM TableAB WHERE (aId = a.Id)
AND (UserId = '" + Id + "')) AS userAtProject
FROM Projects AS p INNER JOIN TableA AS a ON p.Name = a.Name")
.ToList();
userAtProject 的值始终为 NULL。我希望有人能帮助我解决我在这里做错的问题。
如果我是对的,[NotMapped] 属性表示 EF 不会尝试 map/fetch 来自数据库的属性
编辑:也许试试
[ReadOnly(true)]
代替?
我想 select 一个值取决于另一个 table 和自定义 sql。如果另一个 table 中的条目存在,则值为 1,否则为 NULL。 sql 在 SQL Server Management Studio 中工作得很好。但是当我在我的应用程序中 运行 它时,我总是得到 NULL。
这是我的模型的代码:
[Table("Projects")]
public class ProjectsModel
{
[Required(ErrorMessage = "Angabe der ID ist erforderlich.")]
[Display(Name = "Lfd")]
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Name ist erforderlich.")]
[Display(Name = "Name")]
public string Name { get; set; }
[NotMapped]
public bool? userAtProject { get; set; }
}
这是我的习惯 sql:
var Projects = _context.Projects.FromSql("
SELECT p.Id, p.Name, (
SELECT 1 AS Expr1 FROM TableAB WHERE (aId = a.Id)
AND (UserId = '" + Id + "')) AS userAtProject
FROM Projects AS p INNER JOIN TableA AS a ON p.Name = a.Name")
.ToList();
userAtProject 的值始终为 NULL。我希望有人能帮助我解决我在这里做错的问题。
如果我是对的,[NotMapped] 属性表示 EF 不会尝试 map/fetch 来自数据库的属性
编辑:也许试试
[ReadOnly(true)]
代替?