2011-08-26 68 views
2

我是MVC3 C#的新手。为了传统目的,我需要在数据库中有一列名为3DSecureStatus的列。MVC3命名以数字开头的列

当我打电话列这一点,并在应用程序中插入我得到这个错误:

[ModelValidationException: One or more validation errors were detected during model generation:

System.Data.Edm.EdmProperty: Name: The specified name is not allowed: '_3DSecureStatus'. ]

在我定义它为public string _3DSecureStatus { get; set; }的应用程序,因为它不喜欢3是列的第一个字符名称。

有什么建议该怎么办?

+1

显示您确切的失败的代码,请 –

+0

整个应用程序所行的工作,那是错误,我得到当我运行它时 – Beginner

+0

@Beginner,你可以调试你的应用程序,并通过它并向我们展示它失败的行吗?或者至少提供一个堆栈跟踪。 –

回答

2

使用Column属性来指定数据库列名

[Column("3DSecureStatus")] 
public string ThreeDSecureStatus { get; set; } 

或者用流利的映射像

Property(x => x.ThreeDSecureStatus).HasColumnName("3DSecureStatus"); 
1

_3DSecureStatus重命名为其他内容。

实体框架代码首先不允许属性/列在名称的开头有下划线或数字。

所以你必须改变这一点,直到这是固定的。

+0

3DSecureStatus – Beginner

+0

当我收到一个来自圣人的帖子称它为3DSecureStatus – Beginner

+0

命名它别的东西,我试图找到一个解决方案,同时。但是看看它是否有效很有趣。您不需要将Exact命名为来自Sage的呼叫。 –

1

这实际上是一个实体框架错误,而不是一个MVC错误。它看起来有点像谷歌搜索,强调Code First字段名称的开头是无效的,并且不起作用。如果可以,请尝试在它前面放一个字母。

相关问题