0

以下のコードを WPF で書きましたが、次のように書かれています。

エラー 1 タイプ 'WpfApplication.Role' を 'string' に変換できません。

ここでコード:

  1. Roles と N_Roles_Users は、データベース テーブルの名前です。
  2. currentUser は文字列パラメーターです。
  3. myEntities はデータベースの名前です。

        public List<Role> GetUserRoles( string currentUser)
        {
            nrcsaEntities dbcon = new nrcsaEntities();
            N_Roles_Users allroles = null;
            List<Role> roleslist = new List<Role>();
            if (allroles == null)
            {
            allroles = new N_Roles_Users();
                {
                var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x.role_name;
                foreach (var a in y)
                    {
                    roleslist.Add(a);  //Here it is Generating Error
    
                    }
                q.ItemsSource = roleslist.ToList();
    
                }
            }
        return roleslist;
        }
    
4

2 に答える 2

3

クエリを返すx.role_nameと、次のようになりますstring

var y = from x in dbcon.N_Roles_Users
        where x.user_name == currentUser
        select x.role_name;

そのため、 に割り当てることはできませんList<Role>Roleロール名だけでなくエンティティを選択するようにクエリを変更すると、機能するはずです。

または、メソッド宣言を return に変更しますList<string>

public List<string> GetUserRoles( string currentUser)

また、次のように変更roleslistしますList<string>

List<string> roleslist = new List<string>();
于 2013-08-21T11:52:08.130 に答える
1

List<Role> rolesListタイプのリストですRole

クエリは文字列のコレクションを返すようです。

string以下では、あるべきリストにを追加しようとしています。Role

roleslist.Add(a);

実際にオブジェクト自体を追加したいRole場合は、クエリを更新してロールのコレクションを返すことができます。

var y = from x in dbcon.N_Roles_Users where x.user_name == currentUser select x;
于 2013-08-21T11:53:50.433 に答える