c# - 有没有办法制作动态模型?
问题描述
我有一个包含 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 个未使用的字段怎么办。
解决方案
推荐阅读
- python - 如何检查命令是否在 discord.py 中的组中?
- github - GitHub Actions,重复检查不同的触发事件
- c# - JsonConvert.SerializeObject 读取结构,但不读取值
- sql - MSSQL 服务器中如何计算非聚集索引的 index_id?
- ms-access - 防止数据在 Access 表中更改
- mysql - 如何在 MYSQL 表中找到两个不同日期之间的数据,例如(29-05-2021 到 08-06-2021)
- java - 在 Apache Camel XML 中将 DOM 转换为 XML
- javascript - 如何使用 JavaScript 和 AJAX 根据邮政编码自动填充城市和州?
- forms - 使用 Java webstart 从带有参数的表单调用 Oracle 12c 报表
- kotlin - 使用协程实现后应用程序变慢