【发布时间】:2020-09-07 01:21:34
【问题描述】:
我有一个查询,我正在对特定连接/列进行计数 - 如果我运行此代码并删除了“Clicks”[NotMapped] 属性,则所有值都会正确填充 - 但随后插入失败,因为“Clicks " 不是有效的列名。当我将该列标记为 [NotMapped] 时,它不会从此语句中填充。 如何使用原始 SQL 并填充 [NotMapped] 列?
代码:
var query = db.URLs.FromSqlRaw(
@"SELECT [u].[Key], [u].[Url], COUNT(c.Id) AS [Clicks]
FROM[URLs] AS[u]
LEFT JOIN[Clicks] AS[c] ON[u].[Key] = [c].[ShortUrlKey]
GROUP BY[u].[Key], [u].[Url]")
.AsQueryable<ShortURL>();
var urls = query.ToList();
模型(适用于插入,但不填充 Clicks 属性):
public class ShortURL
{
public string Key { get; set; }
public string Url { get; set; }
[NotMapped()]
public int Clicks { get; set; } // doesn't populate from raw query
}
模型(适用于查询,但插入失败)
public class ShortURL
{
public string Key { get; set; }
public string Url { get; set; }
public int Clicks { get; set; } // not in DB
}
【问题讨论】:
标签: entity-framework-core ef-code-first ef-core-3.1