我試圖在實體框架和我的SQL Server與Fluent API之間建立關係。以下是我插入:實體框架中的一對多關係返回null
CREATE TABLE Product (
id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
name VARCHAR(255)
);
CREATE TABLE OrderLine (
id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
productId INT NOT NULL,
FOREIGN KEY (productId) REFERENCES Product(id)
);
現在,product
有許多orderLine
S,但不知道他們並不需要知道這些。例如,我們不需要選擇單一產品並計算訂單數量。下面是它的外觀:
public class Product {
public int id { get; set; }
public string name { get; set; }
public ICollection<OrderLine> orderLines { get; set; } //not needed but we'll have it anyway
}
public class OrderLine {
public int id { get; set; }
public int productId { get; set; }
public Product product { get; set; }
}
根據entityframeworktutorial.net這可能應該工作:
modelBuilder.Entity<Product>()
.HasMany<OrderLine>(s => s.orderLines)
.WithRequired(s => s.product)
.HasForeignKey(s => s.productId);
然而,product
簡直是空當我試圖把它拉出來的數據庫。這不是一對多的關係嗎?我不太確定我出錯的地方。
您是否在查詢中包含屬性,例如'db.OrderLines.Include(e => e.product).ToList();'? –
@SirRufo不,我不知道該怎麼做。我們有一個'Order',它有一個'OrderLines'列表,它有'Product'。所以它就像這樣:'db.Orders.First()。orderLines.First()。product.name',如果這是有道理的。抓住第一個訂單,抓住第一個訂單,抓住產品,給我名字。 – MortenMoulder