그래서 내 EF4 프로젝트에서 두 DataContext 파일의 부분 클래스뿐만 아니라 DataContext에 의해 생성 된 Table/Object 몇 가지를 열었습니다. 그러나 "제품"클래스를 부분으로 여는 경우 제품 백업에서 생성 된 DataContext 클래스까지 직접 연결되는 링크가 없습니다 (가능한 한 멀리 말할 수 있음). DataContext 객체를 'ref'매개 변수로 전달할 때의 단점은 무엇입니까?
public partial class Product
{
public DataContext GetContext()
{
return this.DataContext;
// FAILS!!! No connection from 'this' to DataContext
// makes sense because "Product" isn't REALLY derived from DataContext
//...but still, I want this to work!
}
}
그러나 내부 부분 제품별로
, 나는 반드시 데이터베이스를 직접 조회 할 수 있도록하고 싶습니다, 나는 정말 DataContext에의 한 인스턴스를 초기화하고 내 aspx.cs 페이지에 사용할 수 있도록 좋아 쿼리뿐만 아니라 aspx.cs 페이지에서 호출되는 부분 클래스에서 실행 된 쿼리가 포함됩니다.내 솔루션 지금까지 데이터베이스 주위에 찌를 필요가있는 부분 클래스의 메서드에 'ref'매개 변수로 DataContext의 인스턴스를 전달하는 것입니다.
public partial class Complaint
{
public IEnumerable<Person> GetPByRole(InvestigationRole roleEnum, ref DataContext dbase)
{
var role = dbase.GetRole(roleEnum);
return this.PeopleOnInvestigations
.Where(x => x.InvestigationRoleID == 1)
.Select(x => x.Person);
}
}
그래서이 연결을 통해 데이터베이스에 액세스해야하는 모든 부분 클래스 메소드로 심판 매개 변수로 내 DataContext에 개체 주위에 전달하는 단점이있다 : 여기 부분 클래스입니까? 단점 중 하나는 ref로 전달되면 이러한 부분 클래스 내에서 "AddObject()"새 엔터티를 추가 할 수 있으며 일단 내 asp.cs 페이지에서 내 SaveChanges 콜백이 수행되면 모든 변경 (aspx 및 부분 클래스 메서드에서) 실행됩니다.
DataContext는 구조체입니까, 클래스입니까? –
'DataContext'는 LINQ to SQL 클래스입니다. Entity Framework를 사용하고 있습니까? – Steven
Yup EF4 in VS 2010. 'DataContext'로 '데이터 모델에서 EF로 만든 큰 물건'즉, EDMX 파일을 의미했습니다. – Graham