使用Entity Framework 4在运行时更改表名

时间:2011-03-24 23:45:30

标签: .net entity-framework-4

是否可以在Entity Framework 4(模型优先)中更改特定实体映射到的表的名称?我需要为每个客户创建一个模型,因此需要为表名添加前缀。每个客户使用一个数据库可能更简单。什么是最佳做法?

2 个答案:

答案 0 :(得分:2)

按客户使用数据库。数据库必须具有相同的架构。在运行时修改映射不是一个好主意。

修改

每个客户的模型意味着每个客户的EDMX。请注意,元数据是共享的。因此,在多租户应用程序(这就是我理解您的描述)中,对元数据的每次更改都将更改每个请求的元数据。在安全性和性能方面,使用单独的数据库看起来也更好。

另一个问题是,是否可以在运行时更改元数据。元数据存储在MetadataWorkspace中。你可以阅读它们,但我不确定你是否也可以修改它们(我会在周末检查它。)

答案 1 :(得分:0)

根据您的数据库架构生成EF生成的模型。我不知道如何在EF中改变模式。不计算在我的小脑袋里。

话虽如此,您也可以编写一个改变表的存储过程,并通过EF上下文调用该存储过程。