0

这是我第一次在 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;
        }
    }
}
4

1 回答 1

1

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

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

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

using StatisticsServer;
using StatisticsServer.Entities;

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

于 2013-01-16T12:45:17.607 回答