簡體   English   中英

System.Data.Linq.Mapping修改標記為[Table]的類

[英]System.Data.Linq.Mapping Modify class marked as [Table]

我是LINQ to SQL的初學者,當屬性[Table]的類被修改時,我無法在Internet上找到情況的行為描述。

示例:我將類映射到表

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引發錯誤

System.Data.SqlServerCe.SqlCeException(0x80004005):列名無效。 [節點名稱(如果有)= t0,列名稱= MyNewEnum]。

那么我可以使用屬性強制刪除並重新創建表嗎?

用於添加“ 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 */ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM