繁体   English   中英

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

[英]Change table name at runtime using Entity Framework 4

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

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

编辑:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM