gpt4 book ai didi

c# - 是否可以将数据库优先和代码优先模型与 Entity Framework 混合使用?

转载 作者:可可西里 更新时间:2023-11-01 08:38:07 24 4
gpt4 key购买 nike

我即将开始一个 Web 应用程序,我想在其中使用具有(主要)代码优先模型的 Entity Framework 。

但是,除了我计划创建的特定于应用程序的模型外,我还必须使用外部用户数据库。是否可以首先将我的模型之一指定为数据库并使用单独的数据库上下文?

最佳答案

从技术上讲,这是可能的,但我不推荐这样做。全面使用代码优先要好得多。是的,具有讽刺意味的是,您可以对现有数据库使用“代码优先”。

只需创建与现有数据库中的表相匹配的 POCO。如果您的 POCO 的名称与您的表不同(并非所有表名都是有效的或适当的类名),您可以使用 Table 属性明确告诉 EF 您的 POCO 使用哪个表:

[Table("SomeTable")]
public class MyAwesomeEntity
{
...
}

然后,您需要一个专门用于此现有数据库和属于它的任何实体的单独上下文。您只需 1) 告诉它应该使用什么连接字符串,以及 2) 关闭数据库初始化,这样 EF 就不会尝试实际创建数据库。

public MyExistingDatabaseContext : DbContext
{
public MyExistingDatabaseContext()
: base("MyExistingDatabaseConnectionStringName")
{
Database.SetInitializer<MyExistingDatabaseContext>(null);
}

// DbSets here
}

就是这样。每当您需要使用此现有数据库中的实体时,只需新建此上下文或以其他方式获取它,例如通过 DI(依赖项注入(inject))容器,然后去镇上。

关于c# - 是否可以将数据库优先和代码优先模型与 Entity Framework 混合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680649/

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