0
方法創建ASP.NET核心1應用與EF核心1.我有兩個類有一個一對多的關係,遵循自定義功能,包括在EF
public class Country: EntityBase
{
public string Name { get; set; }
// fields for relations
public IQueryable<Singer> Singers { get; set; }
}
public class Singer : EntityBase
{
public string Name { get; set; }
// fields for relation
public int CountryId { get; set; }
public virtual Country Country { get; set; }
}
而且他們的映射
public class SingerMap
{
public SingerMap(EntityTypeBuilder<Singer> entityBuilder)
{
entityBuilder.HasKey(x => x.Id);
entityBuilder.Property(x => x.Id).ValueGeneratedOnAdd();
entityBuilder.Property(x => x.Name).HasMaxLength(500);
//relational fields
entityBuilder.HasOne(x => x.Country).WithMany(x => x.Singers).HasForeignKey(x => x.CountryId);
}
}
public class CountryMap
{
public CountryMap(EntityTypeBuilder<Country> entityBuilder)
{
entityBuilder.HasKey(x => x.Id);
entityBuilder.Property(x => x.Id).ValueGeneratedOnAdd();
entityBuilder.Property(x => x.Name).HasMaxLength(500);
}
}
我爲這個實體創建了通用的Repository模式。沒有爲包括如下
public virtual IEnumerable<T> AllIncluding(params Expression<Func<T, object>>[] includeProperties)
{
IQueryable<T> query = _context.Set<T>();
foreach (var includeProperty in includeProperties)
{
query = query.Include(includeProperty);
}
return query.AsEnumerable();
}
物業的功能,我把這種方法
[HttpGet]
public JsonResult GetAllForIndex()
{
var result = Service.AllIncluding(x => x.Country);
return Json(result);
}
並在此之後我得到這個錯誤
類型導航屬性的「歌手」上實體類型「國家」 是'IQueryable',因此無法創建具體實例 。可以在使用前初始化屬性,將 公共無參數構造函數添加到該類型中,或者使用可以爲其分配一個HashSet <>或列表<>的類型。
我對解決方案沒有任何想法。 請幫忙。
@ElvinMammadov - 沒問題。請考慮接受答案(請參閱[如何接受SO答案](http://meta.stackexchange.com/a/5235))。 – Igor