小编LCJ*_*LCJ的帖子

类型'System.ObjectDisposedException'的异常

我有以下EF代码的第一个代码.它工作正常.但当我寻找'club2.Members'的价值时,它会说:

'club2.Members'抛出了'System.ObjectDisposedException'类型的异常.

消息是:

ObjectContext实例已被释放,不能再用于需要连接的操作.

我没有为Members属性设置值.没关系.但是它不应该在内部引起任何异常.

  1. 有没有办法克服这个例外?
  2. 删除此异常是否有助于提高性能?
  3. 为什么这个异常不会导致程序执行终止?

注意:我不需要俱乐部实体中的会员数据(在我打电话的时候).即使当时没有成员加入俱乐部.我只需要摆脱异常; 不使用预先加载来加载数据.如何避免异常

在此输入图像描述

namespace LijosEF
{

public class Person
{
    public int PersonId { get; set; }
    public string PersonName { get; set; }
    public virtual ICollection<Club> Clubs { get; set; }
}

public class Club 
{
    public int ClubId { get; set; }
    public string ClubName { get; set; }
    public virtual ICollection<Person> Members { get; set; }

}




//System.Data.Entity.DbContext is from EntityFramework.dll
public class NerdDinners : System.Data.Entity.DbContext
{

    public …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework ef-code-first

3
推荐指数
1
解决办法
3万
查看次数

LINQ:获得所有子项目总和的有效方法

我为每个循环都有以下内容来获取所有子对象的总和.使用LINQ有更好的方法吗?

Purchase p1 = db.Purchases.FirstOrDefault(p => p.PurchaseId == 1);

int total = 0;
foreach (SellingItem item in p1.SellingItems)
{ 
   total = total + Convert.ToInt32(item.Price);
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

参考:

  1. 如何获得linq中最高和最低价格项目的总和

  2. 在linq中使用ALL运算符来过滤EntitySet的子项

.net c# linq

3
推荐指数
1
解决办法
3986
查看次数

从VS2010 WCF服务应用程序获取WSDL

我刚刚在Visual Studio 2010中创建了一个示例WCF服务应用程序.它具有以下配置和服务代码.我需要看到生成的相应WSDL.我需要做些什么才能看到相应的WSDL?

在此输入图像描述

public class Service1 : IService1
{
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }

    public CompositeType GetDataUsingDataContract(CompositeType composite)
    {
        if (composite == null)
        {
            throw new ArgumentNullException("composite");
        }
        if (composite.BoolValue)
        {
            composite.StringValue += "Suffix";
        }
        return composite;
    }
}
Run Code Online (Sandbox Code Playgroud)

参考

  1. 如何生成wcf服务库项目的wsdl文件?
  2. 有什么办法可以从WCF服务应用程序创建WSDL文件吗?
  3. WSCF由WCF自动生成

.net c# wcf wsdl visual-studio-2010

3
推荐指数
1
解决办法
2万
查看次数

使用标记的GridView行号(仅限)

我需要在网格视图中显示行号.使用BoundField或TemplateField显示行号的最佳方法是什么?

注意:这需要仅使用标记(没有代码隐藏).

注意:当排序发生时,行号不应该按顺序排列,第一行应该包含其内容.

我已经提到了以下内容:

  1. http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/2eead3e3-5cc2-40f7-a91c-8f7942d5329c/

.net c# asp.net gridview

3
推荐指数
1
解决办法
5496
查看次数

SQL Server WHERE条件不考虑空格

我有带有尾随空格的名字和姓氏.我有两个SQL查询 - 即使我搜索没有空格,第一个查询返回结果.(第一个查询返回不需要的结果).

  1. 在所有版本的SQL Server中,此行为是否一致?
  2. 这是一种已知行为吗?难道在任何地方记录msdnSQL Server 2008 R2

DECLARE @NameTable TABLE (first_name varchar(40),last_name varchar(40))
INSERT INTO @NameTable VALUES ('STEVEN    ','STANLEY   ');


--QUERY 1
SELECT first_name AS [FirstName], last_name AS [LastName]
FROM  @NameTable A
WHERE (first_name = 'STEVEN')
AND (last_name = 'STANLEY')


--QUERY 2       
SELECT first_name AS [FirstName], last_name AS [LastName]
FROM  @NameTable A
WHERE (( ISNULL(first_name,'')+' ' +ISNULL(last_name,'') ) = 'STEVEN STANLEY')

--QUERY 3   (With LTRIM and RTRIM)    
SELECT first_name AS [FirstName], last_name AS …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2008-r2

3
推荐指数
1
解决办法
3307
查看次数

使用两个条件拆分字符串

我有一个字符串,如下所示.

string sample ="class0 .calss1 .class2 .class3.class4 .class5 class6 .class7";

我需要从这个示例字符串创建一个WORDS列表.

WORD是一个以句点开头并以以下结尾的字符串:

  1. 空间或
  2. 另一个时期或
  3. 字符串的结尾

注意:这里的关键点是 - 拆分基于两个标准 - 句点和空格

我有以下计划.它工作正常.但是,是否有更简单/更有效/更简洁的方法使用LINQRegular Expressions

        List<string> wordsCollection = new List<string>();
        string sample = " class0 .calss1 .class2 .class3.class4  .class5 class6 .class7";

        string word = null;

        int stringLength = sample.Length;
        int currentCount = 0;

        if (stringLength > 0)
        {
            foreach (Char c in sample)
            {

                currentCount++;
                if (String.IsNullOrEmpty(word))
                {
                    if (c == '.')
                    {
                        word = Convert.ToString(c);
                    } …
Run Code Online (Sandbox Code Playgroud)

c# linq

3
推荐指数
1
解决办法
1302
查看次数

如何使用FromBase64String创建长度为16的byte []

我需要创建一个byte[]长度为16.(一个字节数组,有128位用作AES加密中的密钥).

以下是有效的字符串

"AAECAwQFBgcICQoLDA0ODw=="
Run Code Online (Sandbox Code Playgroud)

确定字符串是否为128位的算法是什么?或者是反复试验是创建这种128位字符串的唯一方法吗?

    static void Main(string[] args)
    {
        string firstString = "AAECAwQFBgcICQoLDA0ODw=="; //String Length = 24
        string secondString = "ABCDEFGHIJKLMNOPQRSTUVWX"; //String Length = 24
        int test = secondString.Length;

        byte[] firstByteArray = Convert.FromBase64String((firstString));
        byte[] secondByteArray = Convert.FromBase64String((secondString));

        int firstLength = firstByteArray.Length;
        int secondLength = secondByteArray.Length;


        Console.WriteLine("First Length: " + firstLength.ToString());
        Console.WriteLine("Second Length: " + secondLength.ToString());

        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

调查结果:

对于256位,我们需要256/6 = 42.66个字符.这四舍五入到43个字符.[使其可被4整除=]

对于512位,我们需要512/6 = 85.33个字符.这是四舍五入到86 char.[使其可被4整除==]

对于128位,我们需要128/6 = 21.33个字符.这被舍入到22个字符.[使其可被4整除==]

.net c# encryption base64 cryptography

3
推荐指数
1
解决办法
5044
查看次数

将int转换为short的更好方法?(如果不可能,则为NULL)

我有以下转换两种方法intshort?.

  1. 如果值不在短程范围内,则第一个失败.
  2. 第二种方法有效,但它没有必要conversion to string.

有更好的方法吗?

编辑:

从下面的答案:

Int16只是Int32的一个子集,因此您不需要任何转换为​​"中间"类型.

//Approach 1
int vIn = 123456789;
short? vOut = Convert.ToInt16(vIn);
//Value was either too large or too small for an Int16.

//Approach 2
short? vOut2 = null;
int vIn2 = 123456789;
short number;
string characterRepresentationOfInt = vIn2.ToString();
bool result = Int16.TryParse(characterRepresentationOfInt, out number);
if (result)
{
    vOut2 = number;
}
Run Code Online (Sandbox Code Playgroud)

参考:

  1. Java:从int转换为short

.net c#

3
推荐指数
1
解决办法
1111
查看次数

将多个命令的结果存储在单个文件中

我有一个批处理文件,其中包含下面列出的两个命令。

  ping google.com > C:\Test\logfile.txt
  ping yahoo.com > C:\Test\logfile.txt
Run Code Online (Sandbox Code Playgroud)

当我运行它时(在 Windows XP 中),只有最后一个命令的结果存储在文件中。

问题

  1. 我们怎样才能让这两个命令都存储结果呢?
  2. 我们是否可以在一处指定文件名,以便所有命令都将结果存储在该文件中?

参考:

  1. 如何在Windows中的bat脚本中将输出直接输出到txt文件中

windows scripting command-line batch-file

3
推荐指数
1
解决办法
7214
查看次数

应用NOLOCK后,Select语句也会等待

在SQL Server 2012中,我显式锁定了一个表,如下所示:

参考:如何在Microsoft SQL Server中显式锁定表(寻找黑客 - 不合作的客户端)

当这个锁发生时,我正在该表上运行带有NOLOCK的SELECT查询.但是查询不是在撤回数据,直到我停止Window 1并等待一段时间.

为什么没有NOLOCK按预期工作?

- 窗口1

DECLARE @TranName VARCHAR(300)
SET @TranName = 'MyTran';

BEGIN TRANSACTION @TranName


DECLARE @Current INT
SET @Current = 0

DECLARE @LoopCount INT
SET @LoopCount = 1;

WHILE @Current < 1
BEGIN

       SET @LoopCount = @LoopCount+1;
       PRINT @LoopCount

       ALTER TABLE DBATCPH ADD LockTest INT
       ALTER TABLE DBATCPH DROP COLUMN LockTest 

       WAITFOR DELAY '00:01';



END

GO 

Go
Run Code Online (Sandbox Code Playgroud)

- 窗口2

   SELECT TOP 1 * FROM DBATCPH NOLOCK
Run Code Online (Sandbox Code Playgroud)

sql-server

3
推荐指数
1
解决办法
211
查看次数