我使用服务层lattern,我的解决方案包含三个项目:
在我的控制器中在UI项目中,我有以下代码:
public ActionResult AddSpotifyAlbums(List<SpotifyAlbums> albums)
{
_profileService.AddSpotifyAlbums(albums);
return Json(new { data = albums });
}
List<SpotifyAlbums>
中的SpotifyAlbums是我的UI项目中的模型。它看起来像这样:
public class SpotifyAlbums
{
public string URI { get; set; }
public int profileId { get; set; }
}
正如您所看到的,我在这里使用服务_profileService
来调用处理相册保存的方法。
但是专辑的类型是SpotifyAlbums
。当专辑的型号类型为SpotifyAlbums
时,我该如何处理我的服务?
我试图在我的服务项目中创建一个相同的模型,但它不起作用。我收到以下错误:
严重级代码描述项目文件行抑制状态 错误CS1503参数1:无法转换 &#39; System.Collections.Generic.List&#39; 至 &#39; soundyladder.Service.Models.SpotifyAlbums&#39;
答案 0 :(得分:1)
您不能随意分配不同类型的对象。即使你给它们相同的名字,它们也是独立的实体。
假设服务和UI项目引用了您的Core项目,您可以在Core项目中定义SpotifyAlbums
类,并在其他层中引用该类。
答案 1 :(得分:0)
布莱恩,你需要决定哪个模块“拥有”SpotifyAlbum
。决策需要考虑数据封装,数据访问和数据操作方面。重要的是建立适当的服务引用并使用SpotifyAlbum
实例获取所有模块以从“拥有”SpotifyAlbum
的模块中获取它。然后所有其他模块都将具有从“拥有”模块的引用构建的代理类。
答案 2 :(得分:0)
我使用相同的设计模式(基于资源的可信子系统)。我喜欢使用包含公共代码和共享模型的.dll。然后所有项目都引用.dll作为模型定义。