使用实体框架数据不匹配

发布于 2024-10-19 06:02:07 字数 807 浏览 1 评论 0原文

使用 Visual Studio 2010 Express 用 C# 编写的控制器的代码示例

    public ActionResult Index()
    {
        var _user = Membership.GetUser().ProviderUserKey.ToString();

        var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select new
                       {
                           ProfileId = p.ID
                       };

        return View(profiles.ToList());
    }

- 来自视图的代码 -

@model List<MyProject.Models.Profile>

@{
    ViewBag.Title = "Index";
 }

我不断收到此错误 -

传递到字典中的模型项的类型为 'System.Collections.Generic.List1[<> ;f__AnonymousType11[System.Int32]]',但此字典需要类型为“System.Collections.Generic.List`1[MyProject.Models.Profile]”的模型项。

我做错了什么?

Code sample for controller written in c# using visual studio 2010 express-

    public ActionResult Index()
    {
        var _user = Membership.GetUser().ProviderUserKey.ToString();

        var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select new
                       {
                           ProfileId = p.ID
                       };

        return View(profiles.ToList());
    }

Code from view -

@model List<MyProject.Models.Profile>

@{
    ViewBag.Title = "Index";
 }

and I continualyl get this error -

The model item passed into the dictionary is of type 'System.Collections.Generic.List1[<>f__AnonymousType11[System.Int32]]', but this dictionary requires a model item of type 'System.Collections.Generic.List`1[MyProject.Models.Profile]'.

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羞稚 2024-10-26 06:02:07

您应该必须

 var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select p;

满足您的视图对模型的要求。

You should have

 var profiles = from p in db.Profiles
                       where p.UserId == _user
                       select p;

to meet your view's requirement for model.

羞稚 2024-10-26 06:02:07

您正在投影到一个匿名对象,就像编译器消息所说的那样。如果您确实想要 Profile 对象的列表,则应该将 linq 查询中的 select 子句替换为简单的

 select p;

即,假设 db.Profiles 包含您的模型对象(类型为 Model.Profile)

You are projecting to an anonymous object, just like the compiler message says. If you actually want a list of Profile objects, you should replace the select clause in your linq query with simply

 select p;

That is, assuming that db.Profiles contains your model object (of type Model.Profile)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文