是否存在“数据库级别”?停止 EF 4.2 向自动生成的表和列名称添加空格的方法?

发布于 2024-12-13 21:57:04 字数 302 浏览 1 评论 0原文

我在纯代码“模式”下使用 Entity Framework 4.2。我让它从模型自动生成我的数据库。

但是,它根据标题大小写向我的表和列名称添加空格 - 例如,CustomerOrder 类映射到 [Customer Orders] 表和 ProductNumber 属性映射到 [产品编号] 字段。

有没有什么方法可以防止这种情况发生 - 除了通过 Fluent API 配置每个表和属性名称(我知道如何做)?

这是4.2的新东西吗?

I'm using Entity Framework 4.2 in code-only "mode". I'm letting it autogenerate my database from the model.

However, it's adding spaces to my table and column names based on title-casing - e.g. a CustomerOrder class is mapped to a [Customer Orders] table and a ProductNumber property is mapped to a [Product Number] field.

Is there any way of preventing this from happening - short of configuring every table and property name via the Fluent API (which I know how to do)?

Is this a new 4.2 thing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

转身泪倾城 2024-12-20 21:57:04

您可以覆盖 DataContextOnModelCreating 并更改实体框架使用的约定...可能存在在大写字母之前添加空格的约定。去掉约定,你就完成了。

这些约定位于作为参数传递给该方法的 modelBuilder 对象内。
它有一个 Conventions 属性,您可以检查该属性,并查看那里是否存在约定。

You can override the OnModelCreating of your DataContext and change the conventions used by entity framework... there may be a convention of adding spaces before upper-case letters. Remove the convention and you are done.

The conventions are inside the modelBuilder object passed as argument to that method.
It has a Conventions property that you can inspect, and see if the convention exists there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文