在ASP.NET MVC中的泛型类中设置静态属性

时间:2018-04-07 12:14:24

标签: asp.net-mvc entity-framework generics dbcontext

是否可以在泛型方法中设置静态属性?

例如:我的所有实体都有一些共享列(CreateDateTimeCreateUser等) - 我该如何实现该方法?

 public virtual void Insert(T entity)
 {
        Dbset.Add(entity);
        Context.SaveChanges();
 }

1 个答案:

答案 0 :(得分:1)

您需要拥有一个BaseEntity类,您的所有实体都来自该类,并向其添加共享属性。

public class BaseEntity
{
    public DateTime CreatedDateTime { set; get;}
    public string CreatedUser { set; get;}
}

public class YourEntity : BaseEntity
{
    public int Id { set; get;}
}

并为您的通用方法添加约束,以便设置CreatedDateTimeCreatedUser

public virtual void Insert(T entity) where T : BaseEntity
{
    entity.CreatedDateTime = DateTime.Now;
    entity.CreatedUser = CURRENT_USER;

    Dbset.Add(entity);
    Context.SaveChanges();
}