0

WP(マンゴー)用のアプリケーションを作成し始めていて、LINQを使用してルックアップテーブルの外部キー関係をマップする方法に関する問題が発生しています。 MSDNのドキュメントは、(おそらく私は間違った場所で探しています)助けてくれるようです。基本的に、私は2つのテーブル、LINQ for Windows Phone Mangoアプリの外来キーの関係

OrderType(これは注文によって参照ルックアップ・データで構成)は、基本的

注文(これはバック上記の表を指すOrderTypeIDと呼ばれる列を有することになる)

1-有します多対多関係。ここで

は私がLINQで説明してきた方法は次のとおりです。どのように私のコードでは、この関係を記述するためにEntityRefおよび/またはEntitySetクラスを使用する:

[Table(Name = "OrderTypes")] 
public partial class OrderType 
{ 
    private Int16 _OrderTypeID; 
    private string _Name; 
    private string _ShortName; 

    [Column(Storage = "_OrderTypeID", DbType = "Int NOT NULL", IsPrimaryKey = true, CanBeNull=false)] 
    public Int16 Id {get; set;} 

    [Column(Storage = "_Name", DbType = "NVarChar(50) NOT NULL", CanBeNull = false)] 
    public string Name {get;set;} 

    [Column(Storage= "_ShortName", DbType= "NVarChar(50) NOT NULL", CanBeNull=false)] 
    public string ShortName {get;set;} 
} 

[Table(Name = "Orders")] 
public partial class Order 
{ 
    private Int16 _OrderID; 
    private Int16 _OrderTypeID; 
    private string _Description; 

    [Column(Storage = "_OrderID", DbType = "Int NOT NULL", IsPrimaryKey = true)] 
    public Int16 Id {get;set;} 

    [Column(DbType = "Int", CanBeNull= true)] 
    public Int16 OrderTypeID { get; set; } 

    [Column(DbType = "NVarChar(1000) NULL", CanBeNull = true)] 
    public string Description { get; set; } 

} 

私は再混乱しました。

ありがとうございます。

答えて

0
  • EntitySetが「1」側にある、それは「多くの」側のエンティティが含まれています。

  • EntityRefは、 "1"側の(親)エンティティを参照する "多数"側のエンティティにあります。

ご注文にはEntityRef<OrderType>が表示されます。 OrderTypeには EntitySet<Order>があるかもしれませんが、私は後者があまり意味を持たないと考えています(意味的には、OrderTypeに "注文"のような注文があるとは言えません)。 AdventureWorksデータベースで

は、同様の関係、製品およびProductCategoryをマッピングする際、ProductクラスはProductCategory性質を持っている:それを明確にするための

private EntityRef<ProductCategory> _ProductCategory; 

[System.Data.Linq.Mapping.AssociationAttribute(Storage="_ProductCategory", 
    ThisKey="ProductCategoryID", OtherKey="ProductCategoryID", IsForeignKey=true)] 
public ProductCategory ProductCategory 
{ 
    get { return this._ProductCategory.Entity; } 
    set { this._ProductCategory.Entity = value; } 
} 
+0

感謝を。フォローアップの質問がありました。 StackOverflowの新機能では、新しい投稿を投稿する必要があるかどうか、またはここでそれを聞いてもかまいません。私はとにかくここに尋ねます(私はいつも新しい投稿に入れることができます)。 有効なOrderTypeを使ってOrdersに行を挿入/更新する方法の例を教えてください。 OrderTypeIDを取得し、それをOrderのinsert/update stmtに使用するには、最初に別のクエリを実行する必要がありますか? – imsp

+0

OrderTypeを照会してIDを取得し、OrderでIDを設定するか、OrderTypeプロパティー(EntityRef)を設定する必要があります。より多くの助けが必要な場合は、新しい質問をするのが良いです(スレッドごとに1つのトピックを持つのが好きです)。しかし、これはかなり些細なので、私はあなたが同様の問題に関する他の記事を見つけることができると思います。 –

関連する問題