![](/img/trans.png)
[英]Differences between TableAttribute class in System.Data.Linq.Mapping and System.ComponentModel.DataAnnotations.Schema
[英]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.