2013-03-12 58 views
1

我正在製作一個MVC 3文章應用程序,並使用LINQ將它連接到SQL數據庫。我試圖創建LINQ代碼的新文章,我一直在與這些錯誤結束了:無法從表格轉換爲

ArticleRepository.cs(41,13,41,47):錯誤CS1502:爲「最佳重載方法匹配System.Data.Linq.Table.InsertOnSubmit(NyjiGrunnur.ArticleTable) '有一些無效參數

ArticleRepository.cs(41,45,41,46):錯誤CS1503:參數1:不能從轉換' NyjiGrunnur.Models。第二條」到 'NyjiGrunnur.ArticleTable'

添加文章功能:

public void AddArticle(Article s) 
    { 
     ArticleLINQDataContext db = new ArticleLINQDataContext(); 
     //Article a = new Article { Id = s.Id, Content = s.Content, Name = s.Name, Subject =  s.Subject, Created = (DateTime)s.Created }; 
    Line 41: db.ArticleTables.InsertOnSubmit(s); 
     db.SubmitChanges(); 
    } 

我有Articles.cs型號:

namespace NyjiGrunnur.Models 
{ 
    public class Article 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public string Content { get; set; } 
     public string Subject { get; set; } 
     public DateTime Created { get; set; } 
    } 
} 

我有LINQ到我的工作SQL類。我也有一個編輯功能的工作原理是這樣的:

public void UpdateArticle(Article s) 
    { 
     ArticleLINQDataContext db = new ArticleLINQDataContext(); 

     var a = (from article in db.ArticleTables 
        where article.Id == s.Id 
        select article).SingleOrDefault(); 
     a.Name = s.Name; 
     a.Subject = s.Subject; 
     a.Content = s.Content; 
     a.Created = s.Created; 
     a.Id = s.Id; 
     db.SubmitChanges(); 

    } 

HomeController也應該是工作的罰款。

回答

4

由於錯誤試圖告訴你,你的LINQ to SQL類使用ArticleTable類,這與Article類不一樣。

您需要從Article(視圖模型)創建一個ArticleTable(數據模型)實例,以便將其放入數據庫中。

+0

對不起,如果這看起來很愚蠢,但我會怎麼做呢? - 得到它了。 – Mappan 2013-03-12 14:43:09

+0

@Zanii:'新的ArticleTable {...}' – SLaks 2013-03-12 14:49:05

1

看起來你是在軌道上AddArticle但註釋掉的映射:

public void AddArticle(Article s) 
{ 
    ArticleLINQDataContext db = new ArticleLINQDataContext(); 
    ArticleTable a = 
     new ArticleTable { 
          Id = s.Id, // *see question below code sample 
          Content = s.Content, 
          Name = s.Name, 
          Subject = s.Subject, 
          Created = (DateTime)s.Created 
         }; 
    db.ArticleTables.InsertOnSubmit(a); // <-- note it's "a" instead of "s" 
    db.SubmitChanges(); 
} 

*是Id自動生成?如果是這樣,你插入它時不應該設置它。

相關問題