我有以下EF代码的第一个代码.它工作正常.但当我寻找'club2.Members'的价值时,它会说:
'club2.Members'抛出了'System.ObjectDisposedException'类型的异常.
消息是:
ObjectContext实例已被释放,不能再用于需要连接的操作.
我没有为Members属性设置值.没关系.但是它不应该在内部引起任何异常.
注意:我不需要俱乐部实体中的会员数据(在我打电话的时候).即使当时没有成员加入俱乐部.我只需要摆脱异常; 不使用预先加载来加载数据.如何避免异常?

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) 我为每个循环都有以下内容来获取所有子对象的总和.使用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)

参考:
我刚刚在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)
参考
我需要在网格视图中显示行号.使用BoundField或TemplateField显示行号的最佳方法是什么?
注意:这需要仅使用标记(没有代码隐藏).
注意:当排序发生时,行号不应该按顺序排列,第一行应该包含其内容.
我已经提到了以下内容:
我有带有尾随空格的名字和姓氏.我有两个SQL查询 - 即使我搜索没有空格,第一个查询返回结果.(第一个查询返回不需要的结果).
msdn的SQL 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) 我有一个字符串,如下所示.
string sample ="class0 .calss1 .class2 .class3.class4 .class5 class6 .class7";
我需要从这个示例字符串创建一个WORDS列表.
WORD是一个以句点开头并以以下结尾的字符串:
注意:这里的关键点是 - 拆分基于两个标准 - 句点和空格
我有以下计划.它工作正常.但是,是否有更简单/更有效/更简洁的方法使用LINQ或Regular 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) 我需要创建一个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整除==]
我有以下转换两种方法int来short?.
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)
参考:
我有一个批处理文件,其中包含下面列出的两个命令。
ping google.com > C:\Test\logfile.txt
ping yahoo.com > C:\Test\logfile.txt
Run Code Online (Sandbox Code Playgroud)
当我运行它时(在 Windows XP 中),只有最后一个命令的结果存储在文件中。
问题
参考:
在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) c# ×7
.net ×6
linq ×2
sql-server ×2
asp.net ×1
base64 ×1
batch-file ×1
command-line ×1
cryptography ×1
encryption ×1
gridview ×1
scripting ×1
sql ×1
wcf ×1
windows ×1
wsdl ×1