自动生成部分类

时间:2013-01-16 12:26:36

标签: asp.net entity-framework visual-studio-2012

这是我第一次在VS2012中使用EF,因为到目前为止我一直在使用2010。我添加了实体框架模型,它添加了2个扩展名为.tt的文件,我确信VS2010中没有。在其中一个下面,它会生成与实体匹配的部分类。但是,我已经在我的应用程序的根目录下另一个手动创建的名为Entites的文件夹中有这些部分类。这会导致构建问题,因为它们发生冲突......

如何阻止它们自动生成或如何使它们与我手动创建的部分类一起使用?令人难以置信的是,VS2012做到了这一点而不会因为它破坏了我的代码!

自动生成类的示例

namespace StatisticsServer
{
    using System;
    using System.Collections.Generic;

    public partial class Statistic
    {
        public int StatID { get; set; }
        public int CategoryID { get; set; }
        public int FranchiseID { get; set; }
        public double StatValue { get; set; }
    }
}

手动创建的类的示例

namespace StatisticsServer.Entities
{
    public partial class Statistic
    {
        public static List<Statistic> GetStatisticsSet(int categoryID)
        {
            List<Statistic> statSet = new List<Statistic>();
            using (var context = new StatisticsTestEntities())
            {
                statSet = (from s in context.Statistics where s.CategoryID == categoryID select s).ToList();
            }
            return statSet;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

确保手动创建的类与自动生成的类位于同一名称空间中。

否则这两个类将被视为单独的部分类,如果在同一个调用类中使用两个命名空间,则无法确定您所指的类。

例如,在您的情况下,您可能有:

using StatisticsServer;
using StatisticsServer.Entities;

当您在该类中声明类型为Statistic的对象时,构建将失败,因为两个名称空间中都存在Statistic类。