1

SalesOrders という名前の POCO エンティティと、SalesOrderLines という SQL データベースから生成された通常のエンティティをエンティティ化する必要があるとします。次のコードのように、SalesOrders から SalesOrderLines への関連付けを作成したいのですが、コードの下で例外が発生し続けます。これが可能かどうか誰にもわかりますか?

[DataServiceKey("SalesOrderNumber")]
public class SalesOrder
{
    [Key]
    public int SalesOrderNumber { get; set; }
    public string StockCode { get; set; }
    public string Description { get; set; }

    [Include]
    [Association("SalesOrder_SalesOrderLine", "SalesOrderNumber", "SalesOrderNumber")]
    public IQueryable<SalesOrderLine> SalesOrderLines
    {
        get
        {
            SalesOrderLineEntities oSalesOrderLineEntities = new SalesOrderLineEntities();
            var soLines = from line in oSalesOrderLineEntities.SalesOrderLines
                         where line.OrderNumber == SalesOrderNumber.ToString() &&
                            line.StockCode == StockCode
                         select line;
            return soLines;
        }
        set
        {
        }
    }
}

タイプ「ServiceName.NameSpace.SalesOrder」のプロパティ「SalesOrderLines」は有効なプロパティではありません。型がプリミティブまたは複合型のコレクションであるプロパティはサポートされていません。

4

1 に答える 1

1

必要な作業は、生成されたメタデータ クラスに [Key] 属性を追加することだけでした。

[MetadataTypeAttribute(typeof(SalesOrderLines.SalesOrderLinesMetadata))]
public partial class SalesOrderLines
{

    internal sealed class SalesOrderLinesMetadata
    {

        private SalesOrderLinesMetadata()
        {
        }

        public DateTime DateStamp { get; set; }

        public string OrderNumber { get; set; }

        [Key]
        public int SalesOrderLineID { get; set; }

        public string SerialNumber { get; set; }

        public string StockCode { get; set; }
    }
}
于 2012-05-22T19:52:41.190 に答える