2010-08-17 2 views
1

DataContext의 CreateDatabase 메서드를 사용하여 데이터베이스를 동적으로 만들고 싶습니다. 수동으로 매핑 클래스를 만들고 테스트했습니다. 그러나 Expression Column (아래 참조)을 추가하자마자 SqlCeException으로 생성이 실패하고 정확한 이유를 찾을 수 없습니다.LINQ to SQL에서 DataContext.CreateDatabase를 사용하여 계산 열을 만들 수 있습니까?

/// <summary> 
    /// The sum of ratings for this document. 
    /// </summary> 
    [Column] 
    public Nullable<float> RatingSum { get; set; } 

    /// <summary> 
    /// The number of times the document was rated. 
    /// </summary> 
    [Column] 
    public Nullable<float> RatingCount { get; set; } 

    /// <summary> 
    /// Average rating as calculated from RatingSum and RatingCount 
    /// </summary> 
    [Column(AutoSync=AutoSync.Never, IsDbGenerated=true, Expression = "RatingSum * RatingCount", DbType="REAL")] 
    public Nullable<float> Rating { get; set; } 

생략 DbType과 또는 도움이되지 않았다 FLOAT로 변경, AutoSync.Always은 오토 싱크를 생략하거나 도움이 중 하나가 작동하지 않는 특성을 IsDbGenerated하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 아니면 단순히 동적으로 생성 된 db에 대해 지원되지 않는 것입니까?

답변

0

Linq to SQL 자체는 전체 데이터베이스를 만드는 데 매우 열악합니다. 적어도 indecies를 생성하지는 않습니다. 따라서해야 할 첫 번째 작업은 만들 때마다 수행하는 SQL 코드를 저장하고 실행하는 것입니다. 데이터베이스.