我在.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;欢呼声。
答案 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是如何映射列表的示例。