无法转换类型&#39; System.Collections.Generic.List <website.class1>&#39;到&#39; System.Collections.Generic.List <library.class1>&#39;

时间:2015-06-03 07:19:35

标签: c# asp.net-mvc asp.net-mvc-4 generics edmx

我在.net 4.5上使用MVC。

我已将模型从网站分离为类库,并将.edmx的tt类文件复制到我的网站,以便我可以访问模型类。

虽然当我从库中返回一些数据时,

List<website.Class1> a = objLibraryRef.GetFileLists1();

我收到此错误。

Cannot convert type 'System.Collections.Generic.List<website.Class1>'
to 'System.Collections.Generic.List<library.Class1>'

我不想引用类库来访问模型类。

任何帮助将不胜感激。 谢谢&amp;欢呼声。

3 个答案:

答案 0 :(得分:2)

您的DAL方法返回类型为get "payments/download_pdf/:id1/:id2" => "payments#download_pdf", :as => 'download_pdf' def download_pdf @pdf_payment_result=AddPayment.find(params[:id1]) @pdf_vendor_details=PaymentVendor.find(params[:id2]) @pdf_address=Vendor.where(:v_name => @pdf_vendor_details.v_name , :s_catagory => @pdf_vendor_details.v_catagory ) pdf = render_to_string(pdf: "test.pdf", template: "payments/download_pdf.html.erb", encoding: "UTF-8", layout: 'application') file_name = "#{Time.now.strftime("%d%m%Y%H%M%S")}.pdf" send_data pdf ,:disposition => 'inline', filename: file_name, :type => 'application/pdf', :page_size => 'Letter' save_path = Rails.root.join('pdfs', file_name) File.open(save_path, 'wb') do |file| file << pdf end end 的{​​{1}} List<T>,当您将其分配给Class1类型但其名称空间不同时library {1}}不是Class1

您可以使用隐式类型变量来推断DAL库方法返回的类型:

website1

或者如果您想要列出类型为library的列表,那么您必须再次按照@adricadar在其帖子中建议的列表进行投影。

答案 1 :(得分:1)

您必须将library.Class1转换为website.Class1。即使它们具有相同的名称,这些类也是不同的,因为它们位于不同的库中。

List<website.Class1> a = objLibraryRef.GetFileLists1()
                         .Select(c => new website.Class1 {
                                   property1 = c.property1,
                                   ...
                                   propertyN = c.propertyN
                          }).ToList();

注意:property1..N替换为您的媒体资源(即Name)。为此,您无需参考创建library.Class1的库。

答案 2 :(得分:1)

您可以使用AutoMapper映射这两个对象。即使您的定义匹配,它们也是两个不同的类,您不能直接转换它们。 Here是如何映射列表的示例。