テーブルのすべてのフィールドに 1 を加えた値を返すストアド プロシージャがあります。
tablename.*,count(suchandsuch)
もちろん、LINQ の ExecuteQuery を介してこれを実行すると、テーブルのクラスのインスタンスを IEnumerable<> で取得できますが、ストアド プロシージャが追加する追加のフィールドも必要です。
これは可能ですか?
私の現在のコードは次のようになります。
public class CategoryWithInstanceCount : DataAccess.Category
{
[System.Data.Linq.Mapping.Column(Storage = "_Instances", DbType = "Int NOT NULL")]
public int Instances { get; set; }
}
protected IEnumerable<CategoryWithInstanceCount> GetCategories(int? parentid)
{
PriceDataContext context = new PriceDataContext(ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
IEnumerable<CategoryWithInstanceCount> ie = context.ExecuteQuery<CategoryWithInstanceCount>(
String.Format("EXEC [dbo].[GetCategoryFromParentID] @parentcategoryid = {0}", parentid == null ? "NULL" : parentid.ToString())
);
return ie;
}