[英]Backing different prop type in .NET, EF with C#
我尝试执行以下操作:
Product
model:
public class Product : BaseEntity
{
public string Name { get; set; }
public string Description { get; set; }
private string _PictureUrls;
[NotMapped]
public string[] PictureUrls
{
get { return _PictureUrls.Split(','); }
set { _PictureUrls = string.Join(',', value); }
}
}
和:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Product>()
.Property(props => props.PictureUrls)
.HasField("_PictureUrls")
.UsePropertyAccessMode(PropertyAccessMode.PreferFieldDuringConstruction);
}
我不断收到错误:
类型为“string”的指定字段“_PictureUrls”不能用于类型为“string[]”的属性“Product.PictureUrls”。 只能使用与属性类型兼容的类型的支持字段。
我明白为什么,但无法弄清楚如何解决这个问题,请帮忙。
请考虑将 PictureUrl 设为一个实体,但您尝试的操作会奏效。
字符串需要是字符串类型的影子属性,而不是映射到数组属性。 例如
modelBuilder.Entity<Product>()
.Property(typeof(string), "_PictureUrls")
.HasField("_PictureUrls")
.HasColumnName("PictureUrls")
.UsePropertyAccessMode(PropertyAccessMode.PreferFieldDuringConstruction);
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.