Entity Framework 및 Fluent API가있는 SQL Server에서 관계를 만들려고합니다. 여기에 내가 삽입하는 방법은 다음과 같습니다일대 다 관계가 Entity Framework에서 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
의를 가지고 있지만, 그것들을 모르는 그들을 알 필요가 없습니다. 단일 제품을 선택하고 주문 라인의 수를 계산할 필요가 없습니다. 여기 보이는 방법은 다음과 같습니다 entityframeworktutorial.net에 따르면
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; }
}
이 작동합니다 수 :
modelBuilder.Entity<Product>()
.HasMany<OrderLine>(s => s.orderLines)
.WithRequired(s => s.product)
.HasForeignKey(s => s.productId);
그러나, product
단순히 null 인 나는 밖으로 끌어하려고 할 때 데이터 베이스. 이것은 일대 다 (one-to-many) 관계가 아닌가? 나는 어디서 잘못되었는지 잘 모르겠습니다.
'db.OrderLines.Include (e => e.product) .ToList();'와 같은 쿼리에 속성을 포함 시켰습니까? –
@SirRufo 아니, 어떻게해야할지 모르겠다. 우리는'Order'를 가지고 있는데'Order'는'Product'를 가진'OrderLines'의 목록을 가지고 있습니다. 그래서 다음과 같이됩니다 : db.Orders.First(). orderLines.First(). product.name' 그게 합리적이라면. 첫번째 주문을 잡고 첫번째 주문을 잡고 제품을 잡고 나에게 이름을 알려주십시오. – MortenMoulder