質問

まず、私は私の英語ではなく、私の最強の側をお詫びしたい。

の質問に。私の現在のプロジェクトでは、私は、私は私の頭のentitesで亜音速の属性を使用することができ、私のエンティティへのインタフェースを持っていると私は、シームレスに、将来的にO / Rマッパーを切り替えることができるようにしたいです。 私はシングル<のように私のインターフェイスとSimpleRepositorysクラスを使用しようとすると、とにかく、私はすべての<>というように、>エラーを取得します。 私は、エラーメッセージが表示されますが、私はそれを回避する方法を見つけるために助けを必要とする理由私が知っています。 エラーメッセージ:

  

System.InvalidCastExceptionの: 'Core.DomainObjects.IUser' と入力する型のオブジェクトをキャストすることができません 'SubSonic.DomainObjects.User'

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

あなたが見ることができるように

私は成功せず、私はデータを追加したいときに動作するたIUserためにユーザーを作成しようとしています。私はこの仕事をするために何ができるのでしょうか?

ありがとう、
ティミー

役に立ちましたか?

解決

私は亜音速は、このような状況で問題はないと思います。このコードは動作します:

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