![](/img/trans.png)
[英]Accessing httpcontext in class library with ASP.NET Core 1.1 (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.