gpt4 book ai didi

c# - 如何在不在数据库中创建相应表的情况下创建实体集或模型 - Entity Framework

转载 作者:行者123 更新时间:2023-11-30 18:58:23 25 4
gpt4 key购买 nike

我的 sqlserver 数据库中有一个存储过程,它返回多个结果集。

我正在使用来自 msdn 的以下链接从 Entity Framework 中的 SP 读取多个结果集。

https://msdn.microsoft.com/en-us/library/jj691402(v=vs.113).aspx

要读取数据,我需要在 xyzDBContext 类中为每个结果集提供 DBSet。

模型类:

public class AreaView
{
public String Area { get; set; }
public String Weight { get; set; }

}

数据库上下文:

 public class EnsembleAPIContext : DbContext
{
public DbSet<AreaView> area {get; set;}

// I want to prevent this table from getting created in db

}

这就是我读取结果集并将其映射到上面创建的数据库集的方式。

 reader.NextResult();
var contributionArea = ((IObjectContextAdapter)db)
.ObjectContext
.Translate<ContributionArea>(reader, "area ", MergeOption.AppendOnly);

我需要做的是为这些结果集创建实体,但我不希望框架为数据库中的这些实体创建表。

注意:这样做的原因是,sp 返回的结果集没有主键,所以假设我们可以使用没有 PK 的实体创建一个有效的表。

这可能吗?

感谢任何帮助。

最佳答案

如果我们可以跳过使用 Entity 框架在数据库中创建表是”的答案:

使用[NotMapped] 属性。

 [NotMapped]
public class Employee
{
public int ID { get; set; }
public String name { get; set; }
}

您可以将此模型用于一般用途,并且不会为此在数据库中创建表。

另一种方法是

OnModelCreating() 方法中

modelBuilder.Ignore<Employee>();

这样 DBContext 将忽略为此模型创建表。

关于c# - 如何在不在数据库中创建相应表的情况下创建实体集或模型 - Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com