Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 以编程方式更改数据库表EntityFramework模型对象引用的_Asp.net Mvc 3_Entity Framework - Fatal编程技术网

Asp.net mvc 3 以编程方式更改数据库表EntityFramework模型对象引用的

Asp.net mvc 3 以编程方式更改数据库表EntityFramework模型对象引用的,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,问题在标题中。我们能否以编程方式更改模型类中的对象(如下面的对象)引用的数据库表,并继续对新表进行操作 public class Word { public int ID { get; set; } public string Text { get; set; } } 这最初是指EntityFramework中自动生成的“Words”表,是否有办法在运行前/运行期间对其进行更改?如果是,怎么做 编辑: 我从数据库表“Words”中获取项目视图中使用的所有字符串,它们的ID为。现

问题在标题中。我们能否以编程方式更改模型类中的对象(如下面的对象)引用的数据库表,并继续对新表进行操作

public class Word
{
    public int ID { get; set; }
    public string Text { get; set; }
}
这最初是指EntityFramework中自动生成的“Words”表,是否有办法在运行前/运行期间对其进行更改?如果是,怎么做

编辑:


我从数据库表“Words”中获取项目视图中使用的所有字符串,它们的ID为。现在,我想要的是,用户向系统输入一种新的语言,并将创建一个新表,例如WordsEnglish。从那时起,如果用户选择英语作为语言,单词对象将引用单词English

最好有一个用例来更好地理解您试图实现的目标,但下面是

在该方法中,您可以配置模型,例如

// Removes pluralization convention for all tables.
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
//删除所有表的复数化约定。
modelBuilder.Conventions.Remove();

//Word实体的特定表名。
modelBuilder.Entity().ToTable(“TableContainingWords”);

如果您正在更改模型,这可能是您所需要的

我还没有找到在运行时真正动态扩展EF模型的方法。考虑到DB上下文继承类中的情况,使用生成的视图来提高性能和模型类方法,避免重新编译似乎很困难。我已经使用程序集发现方法生成代码、编译并访问了它。但从我的观点来看,这一切都不令人满意,因此我已经停止研究这条道路。非常笨拙的结果

具有讽刺意味的是,在我看来,您作为此类问题的用例提供的主题并不需要动态EF

我有完全相同的用例,特定于语言的消息/标签等外观,即特定于语言的文本池

为什么不将语言添加到类/表中呢。 对支持的语言使用表或枚举。 在Textpool表中使用语言

使用不同的模型类进行演示。(视图模型)。 所以你可以用这样的方式来表达

public class Word
{
     Guid ID {get;set;}                   // logical key is WordID + Language
     public int WordID { get; set; }      // implement with new id or 2 field key
     public Language Language {get;set;}    // see cultureInfo for more details 
     public bool IsMaster {get;set;}
     public string Text { get; set; }    // consider renaming due to reserved word implications
}

public class language
{
 int ID,
 String Lang
}

}

你到底想做什么?在程序中,我将运行sql查询来创建一个新表,例如WordEnglish,Word类将继续对其进行操作。我尝试了你的建议,但无法处理查看。你能看看我在链接中的其他问题吗?
public class Word
{
     Guid ID {get;set;}                   // logical key is WordID + Language
     public int WordID { get; set; }      // implement with new id or 2 field key
     public Language Language {get;set;}    // see cultureInfo for more details 
     public bool IsMaster {get;set;}
     public string Text { get; set; }    // consider renaming due to reserved word implications
}

public class language
{
 int ID,
 String Lang
}

}