0

関連する投稿に目を通しましたが、まだ問題があります。これが私のコードです:

var id = Request.QueryString["id"].AsInt();
var accountNum = Request.QueryString["accountnum"];

var orderIDs = new List<OrderID>();

// Order IDs are in the form: OrderNum-OrderLine[,...]
// e.g. orderids=41417-6,36703-1

foreach (var orderID in Request.QueryString["orderids"].Split(',')) {
    var components = orderID.Split('-');
    orderIDs.Add(new OrderID() {
        OrderNum = components[0].AsInt(), 
        OrderLine = components[1].AsInt()
    });
}

var dbContext = new TelecomEntities();
var assignedLines = dbContext.LineAssignments
    .Where(a => orderIDs
        .Any(i => a.OrderNum == i.OrderNum && a.OrderLine == i.OrderLine))
    .ToList();

これを実行すると、次のエラーが表示されます:タイプ 'OrderID' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。

他の投稿で読んだことからorderIDsdbContentコンテキストにないため、クエリを実行できません。

編集: OrderID クラス

public class OrderID
{
    public int OrderNum { get; set; }
    public int OrderLine { get; set; }

    public OrderID() { }
}
4

2 に答える 2

0

私はそれが AsInt であることに賭けています (これまでに見たことはありませんが、WebPages の一部であることがわかります)。

foreach 内でエラーが発生しますか? もしそうなら、代わりにこれを試してください:

        foreach (var orderID in testOrderIDs.Split(','))
        {
            var components = orderID.Split('-');
            orderIDs.Add(new OrderID()
            {
                OrderNum = int.Parse(components[0]),
                OrderLine = int.Parse(components[1])
            });
        }
于 2013-06-27T21:41:51.337 に答える