2017-05-25 67 views
-2

私は 暗黙的に「System.Collections.Generic.IEnumerable <Model>」にタイプ「System.Collections.Generic.List <int>」を変換できません

が暗黙的に型「にSystem.Collectionsを変換できません

このエラーを取得しています Select()を使用して.Generic.List <> 'to' System.Collections.Generic.IEnumerable < OgrenciEvi.Areas.Message.Models.MessageModel> '。私はそれを修正する方法

SiteContext db = new SiteContext(); 
[Route] 
public ActionResult Index() 
{ 
    var model = new ViewModel(); 
    int UserID = int.Parse(User.Identity.GetID()); 
    model.Messages = db.Message.Where(m => m.ReceiverID == UserID || m.SenderID == UserID).Select(m=>m.SenderUser.Name).ToList(); 

    return View(model); 
} 

編集:

public class MessageModel 
{ 
    [Key] 
    public int MessageID { get; set; } 

    [Required(ErrorMessage = "Boş mesaj gönderilemez.")] 
    public string MessageContent { get; set; } 

    [Required] 
    public int SenderID { get; set; } 

    [Required] 
    public int ReceiverID { get; set; } 

    [Required] 
    public DateTime SendingDate { get; set; } 

    [Required] 
    public bool IsSeen { get; set; } 

    public virtual UserModel SenderUser { get; set; } 
    public virtual UserModel ReceiverUser { get; set; } 


    MessageModel() { 
     SendingDate = DateTime.Now; 
    } 
} 

userModel:左側のパネルがあるので

public class UserModel 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [Key] 
    public int UserID { get; set; } 

    [Required (ErrorMessage ="İsim alanı boş geçilemez.")] 
    public string Name { get; set; } 

    [Required(ErrorMessage = "Soyadı alanı boş geçilemez.")] 
    public string Surname { get; set; } 


    [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + 
         @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + 
         @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", 
         ErrorMessage = "E-Posta adresi geçersiz.")] 
    [DataType(DataType.EmailAddress)] 
    public string Mail { get; set; } 

    [DataType(DataType.Password)] 
    public string Password { get; set; } 

    [NotMapped] // Does not effect with your database 
    public string ConfirmPassword { get; set; } 

    public int Gender { get; set; } 
    [RegularExpression("^[0-9]*$", ErrorMessage ="Telefon numarası geçersiz.")] 
    public string PhoneNumber{ get; set; } 
    public int SmokeStatus { get; set; } 
    public DateTime RegistrationDate { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    public string ReturnUrl{ get; set; } 
    [Range(1900,2000, ErrorMessage ="Doğum yılı 1900 ile 2000 yılları arasında olmalı.")] 
    [Required(ErrorMessage ="Yaş alanı boş geçilemez.")] 
    public int BirthYear { get; set; } 

    public string FacebookID { get; set; } 
    public bool Manager { get; set; } 

    public int AccessFacebook { get; set; } 
    public int AccessInstagram { get; set; } 
    public int AccessPhoneNumber { get; set; } 
    public int AccessTwitter { get; set; } 

    public List<LookingForaMateModel> LFMate { get; set; } 
    public List<LookingForaHome> LFHome { get; set; } 
    public List<AlbumModel> Album { get; set; } 
    public List<PropertyTransferModel> PropertyTransfer{ get; set; } 

    [ForeignKey("SenderID")] 
    public List<MessageModel> SenderUser { get; set; } 

    [ForeignKey("ReceiverID")] 
    public List<MessageModel> ReceiverUser { get; set; } 



    public UserModel() { 
     RegistrationDate = DateTime.Now; 
    } 


} 

は、私は私のウェブサイトのための「ダイレクトメッセージ」とFacebookのメッセンジャーのようなデザインの外観をしたいです。私はリストのメッセージの送信者の名前と最後のメッセージを取得する必要があります。しかし、私はそれを作ることができなかった:)

+1

model.Messagesの種類は何ですか? –

+1

左オペランドの型を記述してください。 –

+1

データ型モデルとは何ですか?教えてください。メッセージ?なぜあなたはselectを使用しますか? –

答えて

-1

あなたはまだのViewModelクラスのコードを示しやりなさい

+0

Generic < string> –

+0

'Messages'プロパティのタイプを変更することもオプションだと思いますか?確かに、もしそれが 'IEnumerable'型を持っていれば、予想どおり完全に異なる型のオブジェクトのリストを含む' IEnumerable'への参照を受け入れることができます。しかし、そうすることは、コードの残りの部分では全く意味がないことを意味するわけではありません。ここでの目標は、コンパイラのエラーを何とか止めるだけでなく、OPの問題を解決することです。 –

0

IEnumerableをメッセージの種類を確認します。しかしmodel.MessagesはタイプList<Message>であると仮定すると、以下の作業をする必要があります:

var model = new ViewModel(); 
    int UserID = int.Parse(User.Identity.GetID()); 
    model.Messages = db.Message.Where(m => m.ReceiverID == UserID || m.SenderID == UserID).ToList(); 
関連する問題