SubSonic,SimpleRepository和实体接口

时间:2010-02-12 16:13:32

标签: subsonic interface entity subsonic-simplerepository

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

提出问题。在我目前的项目中,我有我的实体的接口,所以我可以在我的头上使用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

1 个答案:

答案 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;
}