加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC模型中的数据库查询

发布时间:2020-12-16 07:23:52 所属栏目:asp.Net 来源:网络整理
导读:在MVC项目中,如果我在模型中放置LINQ查询,它是否违反MVC模式? namespace DocLibrary.Models{ public class Author { private DocLibraryContext db = new DocLibraryContext(); [Key] public Int32 AuthorId { get; set; } [StringLength(20)] public Strin
在MVC项目中,如果我在模型中放置LINQ查询,它是否违反MVC模式?

namespace DocLibrary.Models
{
    public class Author
    {
        private DocLibraryContext db = new DocLibraryContext();

        [Key]
        public Int32 AuthorId { get; set; }

        [StringLength(20)]
        public String Name { get; set; }

        ..

        public string GetNameById(int AuthorId)
        {
            var query = from a in db.Author
                        where a.AuthorId == AuthorId
                        select a.Name;

            return query.FirstOrDefault();
        }


        public Author GetAuthorById(int AuthorId)
        {
            var query = from a in db.Author
                        where a.AuthorId.Equals(AuthorId)
                        select a;

            return query.FirstOrDefault();
        }
    }

或者我应该将这些方法(GetNameById,GetAuthorById)移动到Controller?

解决方法

In a MVC project if I put LINQ queries in Model,is it against the MVC Pattern?

不,这不符合MVC模式.数据库查询在模型中完全没问题.显然,您要传递给视图的模型和视图模型之间应该有明显的区别.视图模型不应包含任何特定于数据库的内容.

Or should I move these methods (GetNameById,GetAuthorById) to Controller?

绝对不.控制器的职责不是查询数据库.控制器的职责是与模型通信,构建视图模型并将此视图模型传递给视图.控制器甚至不应该知道数据库是什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读