2009-03-28 3 views
3

내 프로젝트에서 많은 테이블이 ApplicationId 외래 키로 aspnet_Application 테이블에 연결됩니다. 나는 사용자가 그것을 보거나 편집하는 것을 원하지 않는다. 그래서 삽입 쿼리가 실행되기 전에이 SQL 테이블 필드 값을 미리 설정하는 방법을 찾고있다. 나는 여전히 올바른 SQL 스크립트를 생성하기 위해 DD를 위해이 칼럼을 사용할 수있는 스캐 폴딩을 가지고 있지만 모든 편집 /리스트/삽입 페이지에서이 컬럼/필드를 숨기고있다.동적 데이터의 서비스 필드 값 설정

내 LinqToSql 클래스의 모든 테이블에 대해 DynamicInsert가 실행되기 전에 이상적으로 코드를 삽입하는 위치를 찾고 있습니다.

감사합니다.

답변

2

그래서 주위를 파고 들자 나는 받아 들일만한 해결책을 찾았습니다. 내 데이터 컨텍스트에 대한 부분 클래스를 만들고 aspnet_Applications에 연결된 모든 테이블에 대해 부분적으로 Insert_ 메서드를 추가했습니다. 모든 메소드에서 현재 응용 프로그램 ID에 ApplicationId 필드를 설정했습니다.

그것은 다음과 같습니다 당신이 동안이 방법을 다른 LINQ 문을 실행할 수 없습니다

public partial class MyDataContext 
{ 
    partial void InsertMyTable(MyTable instance) 
    { 
     instance.ApplicationId = HttpContext.Current.Session["ApplicationId"] as Guid?; 
    this.ExecuteDynamicInsert(instance); 
    } 
} 

참고. 특히 응용 프로그램 ID를 aspnet_Applications 테이블을 쿼리하는 대신 세션에 저장해야했습니다.

이는 (반복적 인 코드를 많이) 완벽하지 그래서 사람이 미래에 나에게 여기에 뼈 :

0

을 던져 더 잘 알고 있다면 가장 좋은 방법은 DomainService 부품을 사용하는 것이 허용 솔루션입니다 동안

.NET RIA Services - Building Data-Driven Applications with Microsoft Silverlight and Microsoft ASP.NET

Microsoft ASP.NET 4.0 Data Access: Patterns for Success with Web Forms

첫 번째는 RIA를 .NET하는 INTROL입니다 : 단지 MIX09에서 발표 닷넷 RIA 서비스 미리보기의 여기가 동영상 참조 관점의 서비스 od Silverlight하지만 DD는 DD에 적용됩니다. 두 번째는 Mix에서의 David Ebbo의 프리젠 테이션이며 DomainService가 DD와 함께 작동하는 방식을 보여줍니다. 여기서는 DomainService에서 모든 비즈니스 로직을 수행 할 수있는 방법이라고 생각합니다.