使用自定义类的模型属性

本文关键字:模型 属性 自定义 | 更新日期: 2023-09-27 18:12:50

我想先说一下,我是一个在学习ASP之前从c++开始的web开发人员。净c#。

我有一个模型在我的web应用程序,它有一个属性,我想使用一个自定义类作为属性的数据类型。我不确定在Visual Studio的文件夹结构中存储自定义类的位置。另外,我不确定我是否设置正确。

自定义类

public class ClassName
{
    public int value1;
    public int value2;
}
public ClassName(int v1)
{
    value1 = v1;
    value2 = v2
}

public class Model
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<ClassName> ClassNames {get; set;}
}

我不希望数据库上的自定义类。我一直在Visual Studio中做Code First with Migrations,并不断尝试将自定义类推送到数据库中。关于我可能设置错误或我需要做什么来得到我正在寻找的任何想法。

使用自定义类的模型属性

就文件夹结构而言-查看Asp的模型-视图-控制器模式。网,很好看的图案。将你的模型存储在一个名为"模型"的文件夹中,将控制器存储在"控制器"下,将视图存储在"视图"下,等等。

至于在你的表中使用'classname',我不太确定你是否可以使用类行。我不确定数据库表如何容纳这个

也许您需要为classname创建另一个表,然后使用外键将这些记录引用回您的第一个表?

如果你不想在数据库中使用public class Model,那么使用VS包管理器控制台执行add-migration IgnoreChanges

这将创建名为IgnoreChanges的迁移类,然后在public override void Up()public override void Down()函数中删除任何您不想要的代码。

:

public partial class IgnoreChanges : DbMigration
{
    public override void Up()
    {
       // No code here
    }
    public override void Down()
    {
       // No code here
    }
}

执行update-database和volia…没有任何更改被添加到数据库。

你基本上是在欺骗Migrations,让它认为它已经将你的模型运行到数据库中。

迁移在执行add-migration时获取数据库的快照,因此通过删除您不想发布到数据库的代码,迁移仍然会识别您的更改已经生成,即使您从public override void Up()public override void Down()函数中删除了代码

希望这是有意义的