0

首先,我想为我的英语道歉,而不是我最强的一面。

对问题。在我当前的项目中,我有与实体的接口,因此我可以在我的头部实体中使用 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 工作,但没有成功。我能做些什么来完成这项工作?

谢谢你,
蒂米

4

1 回答 1

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;
}
于 2010-03-10T12:11:36.143 回答