0

これまで 2010 を使用していたため、VS2012 で EF を使用するのはこれが初めてです。エンティティ フレームワーク モデルを追加すると、拡張子 .tt の 2 つのファイルが追加されますが、これは 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

手動で作成したクラスが、自動生成されたクラスと同じ名前空間にあることを確認してください。

そうしないと、2 つのクラスが別々の部分クラスと見なされ、同じ呼び出しクラスで両方の名前空間を使用すると、どちらのクラスを意味するかを判断できなくなります。

たとえば、あなたの場合は次のようになります。

using StatisticsServer;
using StatisticsServer.Entities;

次に、そのクラスで型のオブジェクトを宣言すると、クラスが両方の名前空間に存在Statisticするため、ビルドは失敗します。Statistic

于 2013-01-16T12:45:17.607 に答える