2013-08-06 107 views
0

我有一個用於選擇行的LS應用程序的域服務,並且該行中的許多字段都是datetime字段。我不斷收到LINQ到了日期時間轉換實體錯誤,當我試着做下面的代碼:在linq選擇期間將實體字段賦值日期

public IQueryable<riaProjectItem> FilterProjectItems(int? projID) 
{ 

    var FilteredProjectItems = _ 
     from pi in this.Context.ProjectItems 
      where (pi.Project.Id == projID) 
      orderby pi.ItemCode ascending 
      select new riaProjectItem 
      { 
       // Note we turn the ID of the Internal Products to 
       // A negative number so we don't have duplicates 
       // with the External products 
       Id = pi.Id, 
       ItemCode = pi.ItemCode, 
       ItemName = pi.ItemName, 
       TechnicalStartDate = pi.TechnicalStartDate.GetValueOrDefault().Date, 
       TechnicalWeeks = Convert.ToDecimal(pi.TechnicalWeeks.ToString()), 
       TechnicalPercentComplete = Convert.ToDecimal(pi.TechnicalPercentComplete.ToString()), 
       EditingStartProjected = pi.EditingStartProjected.GetValueOrDefault().Date, 
       EditingStartActual = pi.EditingStartActual.GetValueOrDefault().Date, 
       EditingWordWeeks = Convert.ToDecimal(pi.EditingWordWeeks.ToString()), 
       EditingEditPercent = Convert.ToDecimal(pi.EditingEditPercent.ToString()), 
       EditingReview = Convert.ToDecimal(pi.EditingReview.ToString()), 
       ClientReviewStartProjected = pi.ClientReviewStartProjected.GetValueOrDefault().Date, 
       ClientReviewStartActual = pi.ClientReviewStartActual.GetValueOrDefault().Date, 
       TranslationPercent = Convert.ToDecimal(pi.TranslationPercent.ToString()), 
       ClientReview = Convert.ToDecimal(pi.ClientReview.ToString()), 
       FinalStartProjected = pi.FinalStartProjected.GetValueOrDefault().Date, 
       FinalStartActual = pi.FinalStartActual.GetValueOrDefault().Date, 
       FinalForm = Convert.ToDecimal(pi.FinalForm.ToString()), 
       FinalReview = Convert.ToDecimal(pi.FinalReview.ToString()), 
       CBTStartDateProjected = pi.CBTStartDateProjected.GetValueOrDefault().Date, 
       CBTStartDateActual = pi.CBTStartDateActual.GetValueOrDefault().Date, 
       CBTWeeks = Convert.ToDecimal(pi.CBTWeeks.ToString()), 
       CBTPercent = Convert.ToDecimal(pi.CBTPercent.ToString()), 
       DeliveryDate = pi.DeliveryDate.GetValueOrDefault().Date, 
       ActualDeliveryDate = pi.ActualDeliveryDate.GetValueOrDefault().Date, 
       Comments = pi.Comments 


     } ; 

    return FilteredProjectItems; 
} 


// Override the Count method in order for paging to work correctly 
protected override int Count<T>(IQueryable<T> query) 
{ 
    return query.Count(); 
} 

} 

類riaProjectItem

public class riaProjectItem 
{ 

    [Key] 
    public int Id { get; set; } 
    public int ItemCode { get; set; } 
    public string ItemName { get; set; } 
    public DateTime TechnicalStartDate { get; set; } 
    public Decimal TechnicalWeeks { get; set; } 
    public decimal TechnicalPercentComplete { get; set; } 
    public DateTime EditingStartProjected { get; set; } 
    public DateTime EditingStartActual { get; set; } 
    public decimal EditingWordWeeks { get; set; } 
    public decimal EditingEditPercent { get; set; } 
    public decimal EditingReview { get; set; } 
    public DateTime ClientReviewStartProjected { get; set; } 
    public DateTime ClientReviewStartActual { get; set; } 
    public decimal TranslationPercent { get; set; } 
    public decimal ClientReview { get; set; } 
    public DateTime FinalStartProjected { get; set; } 
    public DateTime FinalStartActual { get; set; } 
    public decimal FinalForm { get; set; } 
    public decimal FinalReview { get; set; } 
    public DateTime CBTStartDateProjected { get; set; } 
    public DateTime CBTStartDateActual { get; set; } 
    public decimal CBTWeeks { get; set; } 
    public decimal CBTPercent { get; set; } 
    public DateTime DeliveryDate { get; set; } 
    public DateTime ActualDeliveryDate { get; set; } 
    public string Comments { get; set; } 

} 

如何分配日期到實體領域?

回答

0

當我給你我這樣做這樣的領域:

TechnicalStartDate = (pi.TechnicalStartDate.HasValue) ? pi.TechnicalStartDate.Value : (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue 

你需要明確你使用最小值和SQL版本不是.NET值是不同的。

相關問題