相关疑难解决方法(0)

使用默认值在模型上注释属性

我创建了一个EF4.1代码优先模型(可能重要也可能不重要),我正在尝试获取我的创建脚手架模板的默认值.我的模型看起来像:

class Person {
    [DefaultValue (18)]
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我的Create视图看起来像:

<div class="editor-label">
    @Html.LabelFor(model => model.Age)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Age)
    @Html.ValidationMessageFor(model => model.Age)
</div>
Run Code Online (Sandbox Code Playgroud)

我希望在运行时,EditorFor会用"18"预先填充文本框,但它没有这样的东西.我误解了DefaultValue属性的用途,还是我应该做的其他事情?

注意:我不想new { Value = "18" }在EditorFor方法上使用覆盖,它似乎打破了DRY.

entity-framework-4 data-annotations asp.net-mvc-3

26
推荐指数
2
解决办法
5万
查看次数

是否有一种简单的方法可以使EntityFramework使用SQL默认值?

例如,我的大多数实体都有DateCreated和DateModified字段.这些默认设置在SQL Server中设置为GetUtcDate().

如果我尝试创建一个实体并且不设置这些值,我会得到一个异常,说它无法运行SQL插入,因为日期值超出范围.有意义,因为C#默认日期是1/1/0001,而SQL Server的最小日期是1/1/1753.

那么有没有办法告诉EF要么使用SQL Server默认值,要么尝试插入尚未设置的列?

c# sql-server entity-framework

12
推荐指数
2
解决办法
6758
查看次数

EntityFramework Database First -- 自动设置 StoreGeneratePattern 值

我有一个首先生成数据库的实体框架上下文。我正在添加一个带有将由数据库生成的 GUID PK 的表。当我从数据库生成 EDMX 模型时,它将 StoreGeneratePattern 设置为“None”。

我需要手动将应用程序的 StoreGeneratePattern 更改为“Identity”,以便让数据库创建 ID。

有没有办法确保 EDMX 自动正确设置该值?

.net sql-server entity-framework

1
推荐指数
1
解决办法
2293
查看次数