anu*_*anu 4 c# asp.net-mvc entity-framework entity-framework-6
我是Entity Framework的新手.我从数据库第一种方法开始,创建了与我选择的表对应的类.我在用MVC.我的一个表中有一Date列.我的要求是我想在我的gridview(网格MVC)中显示Day,即如果获取的特定记录的日期是10/27/2015,那么Day应该显示Tues.我想这样做,而不是在我的数据库中添加额外的列.有没有办法解决这个问题.任何帮助将不胜感激.
我生成的模型类如下: -
public partial class QnsNew1
{
public int Id { get; set; }
public Nullable<System.DateTime> Date { get; set; }
public Nullable<int> PersonelID { get; set; }
public string CType { get; set; }
public string Comments { get; set; }
//public string Day { get; set; }//I want to avoid doing this
public virtual Personnel Personnel { get; set; }
public virtual Type Type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Bis*_*hoy 18
虽然这可以通过实体框架轻松完成,但正如其他答案所指出的那样,并且我100%承认,通过创建与常规实体分开的ViewModel并将计算结果放在一起,最好将表示/ UI模型与数据库模型分开那里的财产.
在EntityFramework Database First模式中,为数据库模型生成的类是分部类.您基本上可以创建另一个具有相同名称的部分类,并在相同的程序集和命名空间中,并在那里添加您的计算属性.
这是一个完整的例子(从这里的答案中借用一周的实施日期):
public partial class MyTable
{
[NotMapped]
public string DayOfWeek
{
get
{
if (Date.HasValue)
return DateTime.Now.DayOfWeek.ToString();
else
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
确保命名空间与生成的类相同非常重要.此外,您必须使用属性注释该属性,
NotMapped以便EF不会尝试将该属性映射或保存回数据库.
| 归档时间: |
|
| 查看次数: |
13237 次 |
| 最近记录: |