是否存在“数据库级别”?停止 EF 4.2 向自动生成的表和列名称添加空格的方法?
我在纯代码“模式”下使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以覆盖
DataContext
的OnModelCreating
并更改实体框架使用的约定...可能存在在大写字母之前添加空格的约定。去掉约定,你就完成了。这些约定位于作为参数传递给该方法的
modelBuilder
对象内。它有一个
Conventions
属性,您可以检查该属性,并查看那里是否存在约定。You can override the
OnModelCreating
of yourDataContext
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.