修改类标记为[Table]

本文关键字:Table 记为 修改 | 更新日期: 2023-09-27 18:13:26

我是LINQ to SQL的初学者,我在互联网上找不到关于情况的行为描述,当属性[Table]的类被修改时

示例:我有一个类映射到表

using System;
using System.Data.Linq.Mapping;

namespace MyNamespace
{
    [Table(Name = "MyClass")]
    public sealed class MyClass
    {
        [Column(IsPrimaryKey = true)]
        public Guid Id { get; set; }
        [Column(CanBeNull = false)]
        public decimal TotalSum { get; set; }
        [Column(CanBeNull = false)]
        public decimal ResultSum { get; set; }
        [Column(CanBeNull = false)]
        public MyEnum Status { get; set; }
    }
}

现在我需要从类中删除字段"状态",并添加类型为"MyNewEnum"的字段。在旧的"MyClass"表中,我有一些数据。旧表"MyClass"将被删除或更新或应用程序将得到错误?

更新:

编辑列名后检查表行为:

sql raise error

System.Data.SqlServerCe。SqlCeException (0x80004005):列名不合法。[节点名(如果有)= t0,列名= MyNewEnum].

所以我可以使用属性强制删除和重新创建表吗?

修改类标记为[Table]

添加列'MyNewEnum'使用下面的代码,而删除列不可用这里说[https://msdn.microsoft.com/en-us/library/windows/apps/hh394018(v=vs.105).aspx#BKMK_UnusedColumnsTablesandDatabases]

DatabaseSchemaUpdater dbUpdater = Empdb.CreateDatabaseSchemaUpdater();
// Add the column
try
{
dbUpdater.AddColumn<MyClass>("MyNewEnum"); 
dbUpdater.Execute(); 
}
catch { /* Nothing */ }