1

私が見つけた型ごとの EF5 テーブルの例 (このようなもの)では、属性を使用して[Table("tablename")]、クラスをテーブルを定義するものとしてマークしています。

この属性を追加すると、エラーが発生します。

Error   1   The type or namespace name 'TableAttribute' could not be found (are you missing a using directive or an assembly reference?)    E:\EShared\Syrius6\syrius_syrius\SBD.Syrius.DomainClasses\Classes.cs    599 6   DomainClasses
Error   2   The type or namespace name 'TableAttribute' could not be found (are you missing a using directive or an assembly reference?)    E:\EShared\Syrius6\syrius_syrius\SBD.Syrius.DomainClasses\Classes.cs    599 6   DomainClasses

私はラインを持っています

 using System.ComponentModel.DataAnnotations;

私の名前空間で

また、アプリを Windows XP で実行したいので、フレームワーク 4 を使用しています。

[更新]ここで重複の可能性があるとしてフラグが立てられたリンクを見て、その結果として System.Data.Linq への参照と using System.Data.Linq を追加しました。

エラーメッセージは現在

 Error  1   The type or namespace name 'TableAttribute' could not be found (are you missing a using directive or an assembly reference?)    E:\EShared\Syrius6\syrius_syrius\SBD.Syrius.DomainClasses\Classes.cs    599 6   DomainClasses
Error   2   Using the generic type 'System.Data.Linq.Table<TEntity>' requires 1 type arguments  E:\EShared\Syrius6\syrius_syrius\SBD.Syrius.DomainClasses\Classes.cs    599 6   DomainClasses

重要なのは、自分のコードを Windows XP で動作させたいということです。重複の可能性に対する 2 番目の回答では、フレームワーク 4.5 が必要です。

【更新】コードは以下の通りです。

namespace SBD.Syrius.DomainClasses
{
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
 using System.Data.Linq;

 [Table("Product")]
 public class Product : LoggedEntity
 { 
    [Required]
    public string BuyUnitMeasure { get; set; }
    [Required]
    public Decimal BuyUnitQuantity { get; set; }
    [Required]
    public String Code { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public String SellUnitMeasure { get; set; }
    [Required]
    public Decimal SellUnitQuantity { get; set; }

    public virtual Template Template { get; set; }
    [Required]
    public string UnitMeasure { get; set; }


    public override string ToString()
    {
        return !string.IsNullOrEmpty(this.Name) ? this.Name : "Products";
    }

}

 public abstract class LoggedEntity
{
    public int Id { get; set; }
    public Guid RowId { get; set; }

    [ConcurrencyCheck]
    public int RowVersionId { get; set; }

    public int SourceSiteNumber { get; set; }

 }
}

[アップデート]

System.Data.Linq.Mapping; を使用するように修正しました。

今私のエラーは

 System.Data.Linq.Mapping.TableAttribute' does not contain a constructor that takes 1 arguments  

[アップデート]

また、提案された重複した質問に対する受け入れられない回答も見ました。System.ComponentModel.DataAnnotations を使用することですが、これにはフレームワーク 4.5 が必要であり、Windows XP では実行されず、XP で実行する必要があるため、使用できないと思います。

[アップデート] Nugetパッケージの管理の画面は次のとおりです

ここに私のプロジェクトの参照があります

Windows 7 で開発していますが、アプリケーションは XP で実行する必要があります。私が従おうとしている例が見えます ここでは、再び Framework 4.1 Fluentを使用しています

私の質問は、EF5 で TPT を使用して Windows XP で実行できますか? もしそうなら、どのように?

4

2 に答える 2