2017-06-05 7 views
0

ProcessedBy列とuser.Idの一致するレコードを取得する方法が必要です(dbはまったく同じ文字列を共有しますが、テーブルは異なります)。クラスを文字列に変換してラムダの照合==条件

短く: 'user'はApplicationUserクラスのインスタンスであり、ProcessedByはApplicationUserタイプのLIクラスのプロパティです。 問題:ProcessedBy.ToString()を適用すると、「ApplicationUserを文字列に変換できません」というエラーが発生します。 ProcessedByはIdを直接含むApplicationUserクラスのプロパティであり、userはIDを文字列プロパティとして含むApplicationUserクラスのオブジェクトであり、私の設計ではなく、これを理解する必要があります。 ProcessedByが含まれてい

public static void UpdateFilesProcessedByUser(ApplicationUser user) 
{ 
    ApplicationDbContext db = new ApplicationDbContext(); 

    //Cannot convert ApplicationUser ProcessedBy to string, user.Id is a string 
    IQueryableL<LI> DbQueryGet = db.LIs.Where(l => 
     l.ProcessedBy.ToString() == user.Id); 

    var GetNumberOfFiles = DbQueryGet.ToList().Count(); 
    IQueryable<ApplicationUser> DbQueryUpdate = db.Users.Where(u => u.Id == user.Id); 
    var GetUser = DbQueryUpdate.ToList(); 
    GetUser[0].FilesProcessed = GetNumberOfFiles; 
    db.SaveChanges(); 
} 

およびLiクラス:私はあなたの問題、私は最初のものとして、あなたはApplicationuserを変換したい願ってい

理解している場合はここ

[Table("LIs")] 
public class LI 
{ 
    . 
    . 
    . 
    public virtual ApplicationUser ProcessedBy {get; set;} 
} 
+0

'ProcessedBy'と' user.Id'のGUIDがありますか? – Poosh

+0

'ProcessedBy'と' Id'はどんな型ですか? –

+0

Idk、私はアイデンティティフレームワークの実装を見ることができませんが、ユーザーオブジェクトのIdプロパティは必ず文字列としてアクセスできます。 'user'はApplicationUserクラスのインスタンスであり、ProcessedByはApplicationUser型のLetterInfoクラスのプロパティです。 –

答えて

0

は、ソリューションです。 idは文字列に、デフォルトではApplicationuser.idはGUID IDです.here参照リンクです。https://msdn.microsoft.com/en-us/magazine/dn818488.aspx?f=255&MSPPError=-2147217396

guidを文字列に変換するには、ここをクリックしてくださいE例:

Guid userid = user.Id; 
string usrid = userid.ToString(); 

追加参照:https://www.codeproject.com/Questions/124616/converting-guid-to-string-and-vice-versa

追加情報:

以下

は、あなたが簡単に、ユーザーIDとユーザーオブジェクト

var user = UserManager.FindById(User.Identity.GetUserId()); 

を取ることができる方法のもう一つの方法であります外部コントローラ:

System.Web.HttpContext.Current.User.Identity.GetUserId(); 

有用な参考:この情報は有用であったhttps://stackoverflow.com/a/22835540/3397630

ホープ。

おかげ カルティク

+1

ねえ、私はそのコードでguidを見つけ、メソッドのreturn文で文字列として変換しました。手伝ってくれてありがとう! :) –

+0

私の喜びと喜んで助けた。共有を共有する... :) –

関連する問題