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 回答