首先,我想为我的英语道歉,而不是我最强的一方。
提出问题。在我目前的项目中,我有我的实体的接口,所以我可以在我的头上使用Subsonic属性,我希望将来能够无缝切换O / R映射器。 无论如何,当我尝试使用我的接口和SimpleRepositorys类(如Single<>,All<>)时出现错误。等等。 我知道为什么我收到错误消息,但我需要帮助才能找到解决问题的方法。 错误讯息:
System.InvalidCastException:无法将“SubSonic.DomainObjects.User”类型的对象强制转换为“Core.DomainObjects.IUser”。
代码:
public IUser FindById(int id) {
var user = _repository.Single<User>(x => x.Id == id);
return (IUser)user;
}
正如您所看到的,当我想要添加数据时,我已尝试使User to IUser命令工作,但没有成功。我能做些什么才能做到这一点?
谢谢你,
Timmie
答案 0 :(得分:0)
我不认为亚音速是这种情况下的问题。这段代码可以使用:
namespace Core.Objects
{
public interface ICustomer
{
int CustomerID { get; set; }
string Name { get; set; }
}
}
实际班级的代码:
namespace Business.Entities
{
public class Customer: Core.Objects.ICustomer
{
public int CustomerID { get; set; }
[SubSonicStringLength(50)]
public string Name { get; set; }
}
}
最后,获得客户的功能:
private static ICustomer CustomerByID(int id)
{
var repos = new SimpleRepository("Test", SimpleRepositoryOptions.None);
var customer = repos.Single<Customer>(c => c.CustomerID == id);
return (ICustomer) customer;
}