C# 适用于windows phone 7,5的CA1051 公共类TestDB:DataContext { publictestdb(stringconnectionstring):基本(connectionString) { } 公共表表名; } [表(Name=“TableName”)] 公共类MyClass { }
因为字段“TestDB.TableName”可见 在其声明类型之外,更改其可访问性 到private并添加具有相同可访问性的属性 正如该领域目前所做的那样,提供对它的访问 在执行fxcop所说的操作时,值不会插入表中,而是会出现错误C# 适用于windows phone 7,5的CA1051 公共类TestDB:DataContext { publictestdb(stringconnectionstring):基本(connectionString) { } 公共表表名; } [表(Name=“TableName”)] 公共类MyClass { },c#,.net,windows-phone-7,C#,.net,Windows Phone 7,因为字段“TestDB.TableName”可见 在其声明类型之外,更改其可访问性 到private并添加具有相同可访问性的属性 正如该领域目前所做的那样,提供对它的访问 在执行fxcop所说的操作时,值不会插入表中,而是会出现错误 public class TestDB : DataContext { public TestDB (string connectionString) : base(connectionString) { } public Tabl
public class TestDB : DataContext
{
public TestDB (string connectionString) : base(connectionString)
{
}
public Table<MyClass> TableName;
}
[Table(Name = "TableName")]
public class MyClass
{
}
公共表TableName;
看起来更像:
public Table<MyClass> TableName;
公共表TableName
{
得到
{
返回GetTable();
}
}
问题是什么?如果它破坏了您的代码,请不要这样做。请使用属性,而不是公共字段。在LINQ to SQL DataContext类中不允许使用属性。唯一的办法就是违反CA1051规则。只要废除这样的规则就行了。上面显示的代码有效,不是吗?因此,保持原样;-)@请详细说明。。我们需要实施吗INotifyPropertyChanged@J.Steen尝试不工作,我想fxcop不认识这一点,因为SqlCE是新的,这里什么是空的?我可以理解在你的代码中(你有一个公共成员,显然没有初始化),但如果你改变了它,它实际上应该返回一些东西,如果我按照fxcop说的那样做的话,即private Table\u TableName;公共表TableName{get return _TableName;set _TableName=value;}并使用TableName将它提供的空引用输入到数据库中exception@CognitiveDesire,那么就不要这样做——试着按照罗兰·肖所展示的那样做,看看会发生什么。如果这个答案对你有效,你应该把它标记为接受(点击左边的空心勾号)-这将有助于提升您在StaxkOverflow的声誉:)
public Table<MyClass> TableName
{
get
{
return GetTable<MyClass>();
}
}