0
私は、遅延読み込みを有効にしたEF 4.3を使用してASP.NET MVC製品を操作します。1対多のリストのIDのみを照会します
私は、ゼロ以上の添付ファイルを持つことができ、クラスの製品を、持っている:
public class Product
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual long Id { get; set; }
//... other properties
public virtual List<Attachment> Pictures { get; set; }
}
public class Attachment
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual long Id { get; set; }
[Required]
public virtual byte[] Data { get; set; }
}
私の主なページ(HTML)は、添付ファイルのリストを含む、製品の詳細情報を提供します。後者の場合、私はアタッチメントのIDだけを必要とし、明示的にはData
プロパティ(多くのデータがあります)をロードしたくありません。
添付ファイルのIDの情報のみを返すクエリを作成するにはどうすればいいですか?データベースの添付ファイルのデータプロパティをクエリしません。
以下のクエリは成功しませんでした。エラー:'XXX.Model.Attachment'タイプの定数を作成できません。このコンテキストでは、プリミティブ型( 'Int32、String、およびGuid'など)のみがサポートされています。
var query = from a in db.Attachments
from prod in db.Product
from pic in prod.Pictures
where prod.Id == prodId && a.Id == pic.Id
select a.Id;
query.ToList();
し、次は、添付ファイルのデータフィールドをロードしました:
var product = db.Products.Find(prodId);
var pictureIds = product.Pictures.Select(x => x.Id).ToList();
使用 'ICollectionを'。 –