首先,我想道歉,我的英语不是我最强壮的一侧。

这一问题。在我的前项目时,我已接到我的实体所以我可以使用的亚音速的属性,在我的头或实体的名单,我希望能够无缝地开关O/R器的未来。无论如何,我得到一个错误,当我试着用我的接口和SimpleRepositorys类似单<>,所有的<>。我知道为什么我会得到错误的消息,但我需要帮助来找到一种方法绕过它。错误信息:

系统。InvalidCastException:无法去投类型的对象'亚音速。DomainObjects.用户'type'核心。DomainObjects.IUser'.

代码:
public IUser FindById(int id) {
var user = _repository.Single<User>(x => x.Id == id);
return (IUser)user;
}

正如你可以看到,我们试图使用户IUser了工作时,我要添加数据,但没有成功。我能做些什么,以使这项工作?

谢谢你,
Timmie

有帮助吗?

解决方案

我不认为是亚音速的问题,在这种情况。这个代码会的工作:

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;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top