簡體   English   中英

.net mvc 與類庫

[英].net mvc with class library

我創建了一個使用 EF 的項目(網絡)。 該項目運行良好,我可以添加、檢索、更新。 我決定使用類庫。 我正在嘗試檢索(比方說)電影的列表,但它不起作用,給出了一些關於模型的錯誤。
我做了什么 :
在庫類中創建了一個類,在其中添加了一個返回電影列表的方法
圖書館類

public static class LibMethods
{
    public static List<Movie> get_movies(Entities MovieEntity) //Model in Library Class
    {
        List<Movie> movies = new List<Movie>();

        var get_movies = from m in MovieEntity.Movie
                          select m;

        if (get_movies.Any())
        {
            foreach (var item in get_movies)
            {
                movies.Add(item);
            }
        }
        return movies;
    }
}

控制器類 (MVC)

List<WebAppWithEF.Models.Movie> listMovies = LibMethods.get_movies(new WebAppWithEF.Models.MovieEntities()); //Model in Web Project

我無法弄清楚為什么它不會導致有關無效參數的錯誤。 即使我刪除了它說它不能將庫類模型電影隱式轉換為 WebApp 模型電影的參數
更新
我有 2 個生成的模型(一個在 webApp 中,一個在庫類中)顯然它們不能一起工作,因此我嘗試從第一個庫中刪除模型(但我需要在庫中使用 ef 模型)因此我切換並制作將 ef 模型留在 lib 項目中並使用 lib 項目連接字符串(EF 生成的 DB 的)並將該連接字符串放在我的 webApp 的 web.config 中

你應該更新你的 get_movies()。

public static class LibMethods
{
    public static List<Movie> get_movies(Entities MovieEntity) //Model in Library Class
    {
       var movies = from m in MovieEntity.Movie
                      select m;
        return movies.ToList();
    }
}

您的問題似乎是 MovieEntity.Movie 和 Movie(來自 WebApp)模型具有相同的名稱,但類型不同。 您需要使用 AutoMapper 之類的東西將數據從 MovieEntity.Movie 復制到電影,或者您可以在您的方法或模型對象的構造函數中手動復制屬性,例如:

public class Movie
{
    public string Title { get; set; }

    public Movie(MovieEntities.Movie movie)
    {
        this.Title = movie.Title;
    }
}

更重要的是,盡管您不需要每次都傳入一個新的 MovieEntity 實例,否則您會在 EF 中泄漏連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM