首页 > 解决方案 > 有没有办法制作动态模型?

问题描述

我有一个包含 10 个字段的模型来建模数据。但在某些情况下,我只有 5 或 6 个字段的信息,而没有使用其余字段。这是好习惯吗?有没有更好的方法使模型具有适应性?

这是 .Net Framework MVC 上的一个项目,并且 ElasticSearch 已经配置为带有 NEST 中间件的 DB。

下面是一个模型示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace mvcTest.Models
{
    public class Activity
    {
        public string UniqueId { get; set; }
        public string Title { get; set; }
        public string Index { get; set; }
        public string Subtitle { get; set; }
        public string Description { get; set; }
        public string DescriptionImage { get; set; }
    }
}

这就是我使用控制器为每个活动插入数据的方式:

using System;
using System.Collections.Generic;
using System.Threading;
using System.Web.Mvc;
using mvcTest.Models;
using mvcTest.Servicies;
using mvcTest.Repositories;

namespace mvcTest.Controllers
{
    public class InitializeController : Controller
    {
        [HttpGet]
        public ActionResult Initialize()
        {
            var service = new ProjectService();
            service.DeleteAll();

            service.AddBulk(new List<Section> {
                InitializeSectionOne()
            });

            return RedirectToAction("Index", "Home");
        }

        private Section InitializeSectionOne()
        {
            var section = new Section 
            {
                UniqueId = Utilities.Utilities.GenerateUniqueId(),
                Type = "teacher",
                Index = 1,
                Title = "First Section of Activities",
                Color = "blue",
                Activities = new List<Activity> {
                    InitializeActivity1(),
                    InitializeActivity2()
                }
            };

            return section;
        }

        private Activity InitializeActivity1()
        {
            return new Activity
            {
                UniqueId = Utilities.Utilities.GenerateUniqueId(),
                Title = "Activity 1",
                Index = "Enter",
                Subtitle = "Example",
                Description = "This is a multiple choice test about...",
                DescriptionImage = "/Content/activity-description-img.png"
            };
        }

        private Activity InitializeActivity2()
        {
            return new Activity
            {
                UniqueId = Utilities.Utilities.GenerateUniqueId(),
                Title = "Activity 2",
                Index = "Enter",
                Subtitle = "Example...more....",
                DescriptionImage = "/Content/activity2-description-img.png"
            };
        }
    }
}

如果它是一个没有的活动会发生什么Description?我需要为每个活动制作模型吗?或者更好地使用这个模型并且只填写可用信息的字段。这是一种不好的做法还是会产生我现在看不到的后果?

这是 1 个字段的示例。如果模型中设置了超过 5 或 10 个未使用的字段怎么办。

标签: c#.netasp.net-mvcelasticsearch

解决方案


推荐阅读