我有類似TrackingMetrics
下面的物體(在實踐中具有更多邏輯和方法),但我無法弄清楚使用物體框架將其映射到資料庫的語法。
歸根結底,我想以列的形式跟蹤對每個指標的回應,但是與 EF 建立復雜的孫子關系給我帶來了麻煩。
我有幾種EntityTypeBuilder
配置之一,我試圖讓它作業無濟于事。以前有人做過這樣的事情嗎?
public class TrackingMetrics
{
public Guid Id { get; set; }
public PrimaryMetrics PrimaryMetrics { get; private set; }
}
public class PrimaryMetrics : ValueObject
{
public MetricOne MetricOne { get; set; }
public MetricTwo MetricOne { get; set; }
public PrimaryMetrics()
{
MetricOne.Set("Unanswered");
MetricTwo.Set("Unanswered");
}
}
public class MetricOne : ValueObject, IMetric
{
public Response Response { get; private set; }
public void Set(Response response)
{
Response = response;
}
}
public class MetricTwo : ValueObject, IMetric
{
public Response Response { get; private set; }
public void Set(Response response)
{
Response = response;
}
}
public class Response : ValueObject
{
public string Value { get; set; }
}
public sealed class PrimaryMetricsConfiguration : IEntityTypeConfiguration<PrimaryMetrics>
{
public void Configure(EntityTypeBuilder<PrimaryMetrics> builder)
{
builder.OwnsOne(x => x.PrimaryMetrics, opts =>
{
opts.Property(x => x.MetricOne.Response)
.HasConversion(x => x.Value, x => new Response(x))
.HasColumnName("primary_metrics_metric_one_response");
opts.Property(x => x.MetricTwo.Response)
.HasConversion(x => x.Value, x => new Response(x))
.HasColumnName("primary_metrics_metric_two_response");
}).Navigation(x => x.PrimaryMetrics)
.IsRequired();
}
}
這是我得到的實際錯誤:
運算式 'x => x.MetricOne.Response' 不是有效的成員訪問運算式。該運算式應表示一個簡單的屬性或欄位訪問:'t => t.MyProperty'。(引數'memberAccessExpression')
uj5u.com熱心網友回復:
無法在評論中格式化,所以又是這樣:
builder.OwnsOne(root => root.Address1, address =>
{
address.OwnsOne(a => a.SubAddress, subAddress =>
{
subAddress.OwnsOne(it => it.SubSubAddress);
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519415.html