나는 다음과 같은 테이블과 관계가 있다고 가정 : 나는 각 데이터베이스 컬럼의 속성 간단한 POCO 클래스를 생성하는 일부 T4 템플릿을 사용하고T4 관계 발전
CREATE TABLE [dbo].[Customers] (
[CustomerID] [int] IDENTITY(1,1) NOT NULL,
[Description] [nvarchar](255) NOT NULL
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ([CustomerID] ASC)
CREATE TABLE [dbo].[Orders](
[OrderID] [int] IDENTITY(1,1) NOT NULL,
[CustomerID] [int] NOT NULL,
...
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED ([OrderID] ASC)
ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [FK_Orders_Customers]
FOREIGN KEY([CustomerID]) REFERENCES [dbo].[Customers] ([CustomerID])
. 이것은 매우 쉽고 재미 있습니다. 사실, 내가 가지고있는 코드는 내가, 또한 테이블 사이의 관계 (1-N 매핑 코드를 작성하는 지금 1-1 싶습니다 다음 샘플
public class Customer {
public int CustomerID { get; set; }
public string Description { get; set; }
}
처럼 각 테이블에 대해 하나의 클래스를 생성 할 수) 그래서이 클래스와 같은 클래스를 얻으려면
public class Customer {
public int CustomerID { get; set; }
public string Description { get; set; }
public IList<Order> Orders { get; set; }
}
불행히도 내 코드는 작동하지 않습니다. 여기있다 : 엔티티 세트 이름이 아닌 개체 이름입니다
public class Customer {
public int CustomerID { get; set; }
public string Description { get; set; }
public IList<Orders> Orders { get; set; } // NOTE THE PLURAL IN THE TYPE NAME!!!
}
:
foreach (NavigationProperty navProperty in entity.NavigationProperties.Where(p => p.DeclaringType == entity)) {
string elementType = ((EntityType)((RefType)navProperty.ToEndMember.TypeUsage.EdmType).ElementType).Name;
string relationshipName = navProperty.ToEndMember.DeclaringType.FullName;
string targetRoleName = navProperty.ToEndMember.Name;
if (navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) {
<#=Accessibility.ForProperty(navProperty) #> IList<<#=navProperty.Name#>> <#=navProperty.Name#> { get; set; }
}
}
불행하게도이이 같은 코드를 생성합니다. 이 문제를 해결하기 위해 내가해야 할 일은 무엇입니까?
참고 : .NET 3.5 버전에는 EF를 사용하고 있습니다. 또한 나는 비주얼 스튜디오에서 EF.Utility.CS.ttinclude
사용할 수를 포함하여 10
감사합니다. 맞습니다.하지만 .....'navProperty.ToEndMember.Name'을 사용하면 'Orders'도 얻을 수 있습니다. – Lorenzo
navProperty.ToEndMember.TypeUsage.EdmType.Name – bwbrowning
이것은 무엇을 제공합니까? 다음 엔터티 이름을 포함하지만 더 많은 텍스트로 장식 된 "reference [CitiesModel.Order]"문자열을 따르십시오. – Lorenzo