gpt4 book ai didi

c# - Entity Framework 初始化最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:34 24 4
gpt4 key购买 nike

我希望确保 Entity Framework 永远不会覆盖或尝试创建我正在连接的数据库。它是以前由 ASP 网站(visual basic script flavor)访问的已建立的数据库。我见过像这样将“name=”传递给基本构造函数的约定...

//example 1    
public class SchoolDBContext: DbContext
{
public SchoolDBContext() : base("name=SchoolDBConnectionString")
{
}
}

但我宁愿不对其进行硬编码(如上所示),所以也许......

//example 2
public SchoolDBContext(string ConnectionString) : base("name=" + ConnectionString) {
}

但我也希望能够在字符串为空时出错...

//example 3
public SchoolDBContext(string ConnectionString) : {
if (string.IsNullOrWhitespace(ConnectionString) throw Exception("empty connection string");
base("name=" + ConnectionString);
}

问题 1:我不确定第三段代码是否与第二段代码完成相同的工作,是吗?作为第三个例子,可以先调用无参数构造,然后再调用带有 "name="

的 base

问题 2:构造函数中是否有可用选项可用于更稳健地配置 EntityFramework?

我正在使用 EF 6

最佳答案

如果您不希望 EF 覆盖 och,请在每次需要添加 createinitializer 类时创建一个新数据库。

public class CreateInitializer : CreateDatabaseIfNotExists<SchoolDBContext>{}

关于c# - Entity Framework 初始化最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158891/

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