【问题标题】:EF4 And POCO Class and Inheritance and Error Mapping and metadata information could not be found for EntityTypeEF4 和 POCO 类以及继承和错误映射和元数​​据信息找不到 EntityType
【发布时间】:2011-01-24 08:39:46
【问题描述】:

我的业务层和表示层中有一个名为 TaskWeek 的 POCO 类,我定义了一个新类:

public class TaskWeekUI : TaskWeek
{
    public DateTime EndDate { get; set; }

    public string PersianEndDate
    {
        get
        {
            return UIUtility.ConvertToPersianDate(EndDate);
        }
    }
}

然后我有一个方法 public void Save(List taskweeks) ,当我想调用这个方法时,我转换一个 List 并调用这个方法:

            using (TaskWeekDA twa = new TaskWeekDA())
            {
                IEnumerable<TaskWeek> tw = MainObjects.twUi.OfType<TaskWeek>();
                twa.Save(tw.ToList());
            }

但是为了保存我得到了这个错误: 找不到 EntityType 的映射和元数​​据信息

谢谢

【问题讨论】:

    标签: c# mapping poco


    【解决方案1】:

    您是否可以在部分类中编写方法而不是从 TaskWeek 继承?

    例如,写一个TaskWeek.part.cs,如:

    //namespace has to be the same as TaskWeek that your model generated
    public partial class TaskWeek
    {
        public DateTime EndDate { get; set; }
    
        public string PersianEndDate
        {
            get
            {
                return UIUtility.ConvertToPersianDate(EndDate);
            }
        }
    }
    

    通过这种方式,EF 可以获得有关类类型的信息,并且您具有与继承相同的功能(也就是说,如果您没有将继承用于其他一些东西)。

    【讨论】:

    • 如果我需要在单独的 Namespace 中,是否有解决方案?
    • 如果它需要在一个单独的命名空间中,那么它可能应该拥有一个自己的类 - 那么你可以像上面一样在你的部分类中创建该类的一个实例,但据我所知, 部分类不能跨越不同的命名空间...
    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2011-08-20
    • 2014-08-23
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多