EF モデルを作成し、クラスで次のコードを記述して、データベースから値を取得しました。そして、値を別のテーブルに保存します。しかし、以下で説明するように、「DATAREADER IS INCompatable」というエラーが表示されます。
EmpRole empr = new EmpRole();
empr.EmpId = strEmpId;
string str="select RoleId from RoleName where roleName like '"+strDesignation+"'";
var context= DbAccess.Data.ExecuteStoreQuery<RoleName>(str, null); //Here Showing Error
empr.RoleId = Convert.ToInt16(context);
DbAccess.Data.EmpRoles.AddObject(empr);
DbAccess.Commit();
次のようなエラーが表示されます。
DataTable は次のとおりです。
CREATE TABLE [dbo].[RoleName](
[SNo] [int] IDENTITY(1,1) NOT NULL,
[RoleId] [smallint] NOT NULL,
[RoleName] [varchar](50) NULL,
CONSTRAINT [PK_RoleName] PRIMARY KEY CLUSTERED
(
[RoleId] ASC
)
CREATE TABLE [dbo].[EmpRoles](
[Sno] [int] IDENTITY(1,1) NOT NULL,
[EmpId] [varchar](8) NOT NULL,
[RoleId] [smallint] NOT NULL,
[ReportingToId] [varchar](8) NULL,
CONSTRAINT [PK_EmpRoles] PRIMARY KEY CLUSTERED
(
[Sno] ASC
)
データ リーダーは、指定された 'MyOrgDBModel.RoleName' と互換性がありません。タイプ 'SNo' のメンバーには、データ リーダーに同じ名前の対応する列がありません。
sqlQueryを実行するために何をすべきか理由を教えてください。