Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 适用于windows phone 7,5的CA1051 公共类TestDB:DataContext { publictestdb(stringconnectionstring):基本(connectionString) { } 公共表表名; } [表(Name=“TableName”)] 公共类MyClass { }_C#_.net_Windows Phone 7 - Fatal编程技术网

C# 适用于windows phone 7,5的CA1051 公共类TestDB:DataContext { publictestdb(stringconnectionstring):基本(connectionString) { } 公共表表名; } [表(Name=“TableName”)] 公共类MyClass { }

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

因为字段“TestDB.TableName”可见 在其声明类型之外,更改其可访问性 到private并添加具有相同可访问性的属性 正如该领域目前所做的那样,提供对它的访问

在执行fxcop所说的操作时,值不会插入表中,而是会出现错误

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>();
    }
}