私は、SQL Server、Dapper.netを使用しているASP.NET MVC 5サイトを持っています。それはこれらのモデルを持っています。タイプテーブルの値に基づいてコレクションの選択を簡単に読み取る
私は、リストクラスを持っている:
public int Id { get; set; }
public short ListingTypeId { get; set; }
public DateTime DateStart { get; set; }
public DateTime DateEnd { get; set; }
public string Details { get; set; }
とListingTypeクラス:
public short Id { get; set; }
public string ListingTypeName { get; set; }
あり20物件の種類がある - と、この数は、時間の経過とともに変化することがあります。
「映画」のリストタイプを追加したとします。私は、ListTypeName = "Movie"ですべてのリストを取得したいと思います。読みやすいコードで、新しいメソッドだけを必要としません。
我々は作品のために= 21 ListingTypeイドを想定した場合 - 基本的に私はこのようなSQLを実行しようとしている:
Select * From Listing Where ListingTypeID = 21
はしかし、それは非常にunsemanticある - 私たちはSelectMovies方法でこれをラップする場合でも、リポジトリ - "21"は意味がありません。
LINQを使って映画を釣り上げるのに、リストテーブルのすべての行を選択することができますが、テーブルが非常に大きく、パフォーマンスが悪いことがあります。
私は、データベース内のListingType IDにまで同期さ列挙型を使用することができます - これは読むために非常に簡単だろう - 例えば:
var MovieListings = myRepo.Select(myEnum.Movie);
しかし、一般的には、それが変更リストのものを使用するのは良い考えではありませんアイテムが同期しなくなり、データベース内のデータが重複してしまいます。私はそれをしたくありません。
ベストプラクティスを使用して列挙型またはハードコーディングデータベースID &を使用せずに、コードを読みやすくする意味で簡単に作成できますか?
Wndrrの答えで問題が解決しないのですか? – GGO