【发布时间】:2020-10-07 00:51:44
【问题描述】:
我正在尝试设置我的实体以从表上不存在的 2 个属性中检索数据,基本上是通过执行 rawSql.当我在 entityBuilder 中映射这两个属性时,它运行良好,但是当我尝试从该实体插入新数据时,我收到与表中缺少的列相关的错误。当我将 Ignore 设置为这些属性时,它解决了缺少列错误,但停止检索数据。是否可以仅忽略插入/更新方向的列/属性?在这种情况下,属性 PlatformDescription 和 DriverDescription。
谢谢大家!
public OrderMap(EntityTypeBuilder<Order> entityBuilder)
{
entityBuilder.HasKey(o => o.Id);
entityBuilder.Property(o => o.CreationDate).IsRequired();
entityBuilder.Property(o => o.ModifiedDate);
entityBuilder.Property(o => o.CreatedBy).IsRequired();
entityBuilder.Property(o => o.ModifiedBy);
entityBuilder.Property(o => o.AutomobilePlate);
entityBuilder.Property(o => o.DriverDriversLicense);
entityBuilder.Property(o => o.LoginChecking);
entityBuilder.Property(o => o.LoginPacking);
entityBuilder.Property(o => o.LoginPicking);
entityBuilder.Property(o => o.LoginDispatching);
entityBuilder.Property(o => o.Platform);
entityBuilder.Property(o => o.TrackingCode).IsRequired();
entityBuilder.Property(o => o.PlatformDescription);
entityBuilder.Property(o => o.DriverDescription);
entityBuilder.Ignore("PlatformDescription");
entityBuilder.Ignore("DriverDescription");
}
var query = "SELECT A.Id ";
query += ",A.AutomobilePlate ";
query += ",A.CreatedBy ";
query += ",A.CreationDate ";
query += ",A.DriverDriversLicense ";
query += ",A.LoginChecking ";
query += ",A.LoginDispatching ";
query += ",A.LoginPacking ";
query += ",A.LoginPicking ";
query += ",A.ModifiedBy ";
query += ",A.ModifiedDate ";
query += ",A.Platform ";
query += ",A.Status ";
query += ",A.TrackingCode ";
query += ",B.Description PlatformDescription ";
query += ",B.Complement ";
query += ",C.Description DriverDescription ";
query += " FROM [Order] A ";
query += " LEFT JOIN Setup B ";
query += " ON A.Platform = B.Id ";
query += " LEFT JOIN Setup C ";
query += " ON A.DriverDriversLicense = C.Id ";
query += "WHERE A.CreationDate > DATEADD(DAY, -30, GETDATE()) ";
return entities.FromSqlRaw(query).ToList();
【问题讨论】:
-
这听起来像是一个 XY 问题。为什么要尝试使用原始 sql?您是否想将此实体定义为没有表 (
entityBuilder.ToView(null))?您似乎也误解了Ignore的目的,它是为了拥有一个不受数据库列支持的对象属性。 -
... retrieve data from 2 properties that doesn't exist on the table- 你怎么能从表上不存在的东西中检索数据!我在这里错过了什么? -
@atiyar 左加入
标签: c# .net entity-framework asp.net-core entity-framework-core