是否可以将 POCO 实体与标准实体相关联

本文关键字:实体 标准 关联 POCO 是否 | 更新日期: 2023-09-27 18:34:28

假设我必须实体一个名为SalesOrders的POCO实体和从名为SalesOrderLines的SQL数据库生成的常规实体。我想创建一个从销售订单到销售订单行的关联,如以下代码所示,但我不断在代码下方收到异常。有谁知道这是否可能?

[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'不是有效的属性。不支持类型为基元集合或复杂类型的属性。

是否可以将 POCO 实体与标准实体相关联

事实证明,我需要做的就是将 [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; }
    }
}