0

まず、私の一番得意な面ではなく、私の英語についてお詫びしたいと思います。

質問に。私の現在のプロジェクトでは、エンティティへのインターフェースを持っているので、ヘッド エンティティでサブソニック アトリビュートを使用でき、将来的には O/R マッパーをシームレスに切り替えられるようにしたいと考えています。とにかく、インターフェイスと、Single<>、All<> などの SimpleRepository クラスを使用しようとすると、エラーが発生します。エラー メッセージが表示される理由はわかっていますが、それを回避する方法を見つけるために助けが必要です。エラーメッセージ:

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 に答える