有没有办法建立动态模型?

时间:2019-08-31 20:27:23

标签: c# .net asp.net-mvc elasticsearch

我有一个具有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个未使用的字段,该怎么办。

0 个答案:

没有答案