あなたの痛みが分かります。私自身、この問題に遭遇したことを覚えています。
残念ながら単純な答えは、Code First で使用できる既定の注釈がまだないということです。Code First に関しては、まだ多くのことが望まれています。
以下は、Entity Framework が提供する利用可能なすべての注釈のリストです。ご覧のとおり、まだ少し制限されています。
http://msdn.microsoft.com/en-us/library/gg197525(v=VS.103).aspx
Entity Framework を使用する場合、私自身は、ゼロから作成したデータベースから生成された単純な EDMX ファイルを使用することに依存しています。これにより、すべての CRUD ステートメントを記述することを心配する必要がなくなり、ささいなことを制御できます。
MVC スキャフォールディングに関する限り、EDMX ファイルは Code First モデルとまったく同じように機能します。私は MVC スキャフォールディングの大ファンで、複数のプロジェクトで EDMX ファイルと共に使用しています。
ユーザー名が CreatedBy フィールドに保存されているレコードを返すという目標に関して。この問題を解決する方法はたくさんあります。LINQ を使用してクエリを作成することも、ストアド プロシージャを自分で作成して EDMX ファイルと共にインポートすることもできます (Code First で EDMX を使用するもう 1 つの利点です)。
LINQ を使用すると、次のようになります。
public List<Record> GetAllRecordsByUserName(string credentials)
{
List<Record> recordList;
using (CustomEntities context = new CustomEntities())
{
IQueryable<Section> recordQuery = from records in context.Records
where records.UserName == credentials
select records;
recordList = recordQuery.ToList<Record>();
}
return recordList;
}
ストアド プロシージャの記述に関しては、ストアド プロシージャを TSQL で記述するだけです。EDMX ファイルが生成されたら、画面を右クリックして [関数のインポート] を選択します。そこからストアド プロシージャを見つけ、それを目的のオブジェクトに自動的にマッピングするか、オブジェクト タイプが存在しない場合は新しい複合タイプを作成するかを選択できます。これは非常に強力なツールであり、上記の LINQ ステートメントを使用するよりも優れたパフォーマンスを発揮します。