![](/img/trans.png)
[英]Is there a way to map a temp table in Entity Framework Core?
[英]No method to map entity to table in entity framework core
我在一個普通的 .net 項目 4.7 版中使用實體框架核心。 我知道我能做到。 問題是我似乎無法將實體 map 添加到表中,因為“ToTable”方法不存在。 我無法編輯 poco 或實體類,因為它們是預定義和生成的。 所以我不能使用該屬性。 我在inte.net上看了看,好像大家都用這個方法把map一個實體轉表。
這是我的代碼:
public class FactsDbContext : DbContext
{
public DbSet<TblIncident> TblIncidents { get; set; }
public DbSet<TblAction> TblActions { get; set; }
public DbSet<TblAddressTypeAlias> TblAddressTypeAliases { get; set; }
public DbSet<TblCountry> TblCountries { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//these methods don't exist in my case
modelBuilder.Entity<TblIncident>(entity => entity.ToTable("Incident"));
modelBuilder.Entity<TblIncident>().ToTable("Incident");
}
}
我還嘗試將 IEntityTypeConfiguration 與 EntityTypeBuilder 一起使用,但它仍然無法訪問 map 表方法:
public class IncidentConfig : IEntityTypeConfiguration<TblIncident>
{
public void Configure(EntityTypeBuilder<TblIncident> builder)
{
builder.ToTable("Incident");
}
}
我查看了GitHub上的Entity Framework Core存儲庫,並在存儲庫中搜索了“Totable”方法。 事實證明它被定義為一個擴展方法,但它位於單獨的nuget包和庫中,名為Microsoft.EntityFrameworkCore.SqlServer
下載軟件包后,我得到了我需要的Totable方法。 當您已經具有可以直接在實體框架核心包中添加實體的“表”屬性時,將該方法添加到sql server的單獨包中仍然沒有意義。
您可以使用以下方法。 您必須使用Table
數據注釋。
的DbContext:
public virtual DbSet<Article> Article { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Article>(b =>
{
b.Property(e => e.Property1).HasDefaultValue(true);
... //Other properties
}
型號類:
[Table("Article")]
public class Article
{
您也可以在ToTable
中使用ToTable,但您必須確保已using Microsoft.EntityFrameworkCore;
。
Line modelBuilder.Entity<TblIncident>().ToTable("Incident");
根據文檔看起來是正確的。 https://docs.microsoft.com/en-us/ef/core/modeling/relational/tables#fluent-api
這是非常老的線程,但我遇到了同樣的問題,我通過將base.OnModelCreating(builder)
作為OnModelCreating
方法的第一行來解決它。
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Rest of the code
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.