将虚拟列添加到实体框架中的表
本文关键字:框架 实体 虚拟 添加 | 更新日期: 2023-09-27 17:56:27
我有下面的dbcontext.cs和相应的表.cs它们使用实体框架在我的MVC中定义了DAL。
我的数据库中的列表表没有 C 列,但我希望实体从数据库中获取 ID、A、B 值并从代码中获取 C。如果是这样,这可能是什么最好的方法。
下面的代码失败,给出异常"无效的列 C"。
我可以考虑的另一种方法是声明另一个实体 ex:ListEntity2 并在从 ListEnity 查询后添加值,我想这是一个很好的方法,但只是想知道任何其他可能性。
表.cs:
[Table("List")]
public class ListEntity
{
[Key]
public int ID { get; set; }
public string A { get; set; }
public int B { get; set; }
private string name;
public virtual string C
{
get
{
return name;
}
set
{
name=value ;
}
}
}
dbcontext.cs:
public DbSet<ListEntity> List { get; set; }
您可以尝试使用 NotMapped
属性(文档)
[...]表示应从数据库映射中排除属性或类。
例如:
using System.ComponentModel.DataAnnotations.Schema;
[Table("List")]
public class ListEntity
{
[Key]
public int ID { get; set; }
public string A { get; set; }
public int B { get; set; }
private string name;
[NotMapped]
public string C
{
get { return name; }
set { name = value; }
}
}