我有以下简单功能:
SELECT AccountNumber, ServiceDate
FROM dbo.table
WHERE Code = '33968'
INTERSECT
SELECT AccountNumber, ServiceDate
FROM dbo.table
WHERE Code = '33967'
定义了这些功能后,public class IndividualDataModel : DataModelBase<long>
{
public List<AddressDataModel> Addresses { get; set; }
public DateTime Birthdate { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class AddressDataModel : DataModelBase<long>
{
public string City { get; set; }
public IndividualDataModel Individual { get; set; }
public long IndividualId { get; set; }
public List<StreetDataModel> Streets { get; set; }
public int Zip { get; set; }
}
public class StreetDataModel : DataModelBase<string>
{
public AddressDataModel Address { get; set; }
public long AddressId { get; set; }
public override string Id => $"{AddressId}_{StreetName}_{StreetNumber}";
public string StreetName { get; set; }
public int StreetNumber { get; set; }
}
成功,但是public class AddressConfiguration : IEntityTypeConfiguration<AddressDataModel>
{
public void Configure(EntityTypeBuilder<AddressDataModel> builder)
{
builder.HasKey(f => f.Id);
builder.Property(f => f.Id).IsRequired().ValueGeneratedOnAdd();
builder.HasOne(f => f.Individual).WithMany(f => f.Addresses).IsRequired();
builder.ToTable("Address", "Core");
}
}
public class IndividualConfiguration : IEntityTypeConfiguration<IndividualDataModel>
{
public void Configure(EntityTypeBuilder<IndividualDataModel> builder)
{
builder.HasKey(f => f.Id);
builder.Property(f => f.Id).IsRequired().ValueGeneratedOnAdd();
builder.Property(f => f.Birthdate).IsRequired();
builder.Property(f => f.FirstName).IsRequired();
builder.Property(f => f.LastName).IsRequired();
builder.ToTable("Individual", "Core");
}
}
public class StreetConfiguration : IEntityTypeConfiguration<StreetDataModel>
{
public void Configure(EntityTypeBuilder<StreetDataModel> builder)
{
builder.HasKey(f => new { f.AddressId, f.StreetName, f.StreetNumber });
builder.Ignore(f => f.Id);
builder.Property(f => f.AddressId).IsRequired();
builder.Property(f => f.StreetName).IsRequired();
builder.Property(f => f.StreetNumber).IsRequired();
builder.HasOne(f => f.Address).WithMany(f => f.Streets).IsRequired();
builder.ToTable("Street", "Core");
}
}
失败,并出现以下错误:
错误:该表达式不能强制为
public virtual async Task<T> SaveAsync(T dataModelBase) { EntityEntry<T> entityEntry; var dbSet = _dbContext.Set<T>(); if (dataModelBase.Id.Equals(default(TId))) { entityEntry = await dbSet.AddAsync(dataModelBase); } else { entityEntry = dbSet.Update(dataModelBase); var entryBefore = await LoadSingleAsync(f => f.Id.Equals(dataModelBase.Id)); var entityEntryBefore = _dbContext.Entry(entryBefore); EntityEntryStateServant.MarkDeletedItemsRecursively(entityEntryBefore, entityEntry, _dbContext); } await _dbContext.SaveChangesAsync(); EntityEntryStateServant.MarkAsDetachedRecursively(entityEntry, _dbContext); return entityEntry.Entity; }
;它具有类型
query
但此处与
一起使用Search
似乎s = self.search.query("match", itemid=40233)
response = s.execute()
...
的类型应该是HtmlTableCell thCustCol = lstAuthorizations.FindControl("customColumn") as HtmlTableCell;
thCustCol.InnerText = query.Select(x => x.Custom1).First().ToString();
的子类型。如果是这样,为什么这种强制转换失败?