我正在尝试使用Entity Framework Core 1.0并尝试在通过dbcontext填充对象时使用.Include.
EFTestContext context = new EFTestContext();
var testEntity = context.TestEntity
.Include(t => t.TestEntity2)
.ToList();
Run Code Online (Sandbox Code Playgroud)
它给了我错误
不包含'Include'的定义,也没有扩展方法'Include'接受'DbSet'类型的第一个参数可以找到
到目前为止我在Stackoverflow中找到的唯一类似的东西是
IQueryable <T>不包含"包含"的定义,也没有包含"包含"的扩展方法
但是添加using语句
using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)
只要给我错误
名称空间'System.Data'中不存在类型或命名空间名称'Entity'(您是否缺少程序集引用?)
任何人都知道我需要获得包含在WF Core 1.0中显示的内容吗?
我有Windows 2012服务器,我可以通过创建数据连接通过Visual Studio Server Explorer连接到SQL Server 2008实例.我也可以使用SQL Server Management Studio并连接到该SQL Server.但由于某些原因,当我尝试使用ODBC数据源管理器连接来设置DSN时,我收到以下错误.
连接失败:
SQLState:'01000'SQL
错误:1
[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] ConnectionOpen(SECCreateCredentials()).
连接失败:
SQLState:'08001'SQL
错误:18
[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SSL安全错误
我似乎无法找到任何关于此的内容,并想知道是否有人熟悉这个问题.
我想补充一点,客户端和服务器都没有执行加密,所以我有点困惑,我会得到一个ssl相关的错误.
我想使用Data属性来存储我想要在新异常中抛出的信息,并且我已经弄清楚如何使用这个片段循环遍历每个DictionaryEntries
foreach (DictionaryEntry de in ex.Data)
Run Code Online (Sandbox Code Playgroud)
但我更喜欢的是通过其键名获取值,因为我在该Data对象中有不同的对象类型.如果我可以通过其键名获取值,则更容易将它们转换为正确类型的对象.
任何人都知道如何通过键名获取Exception.Data字典条目?
我曾经能够使用以下内容为我的行号和类提取异常
System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
var stackFrame = trace.GetFrame(trace.FrameCount - 1);
var lineNumber = stackFrame.GetFileLineNumber();
var file = stackFrame.GetFileName();
Run Code Online (Sandbox Code Playgroud)
但是,现在每当我尝试提取该信息时,使用.Net Core 1.0中的类库,行号始终为0,文件名始终为null.
我将needfileinfo布尔值设置为true并且存在pdb文件.这个功能在.NET Core框架中是不行的还是我现在应该采用的一些不同的方法?
说到下面提供的答案.我已经在使用"System.Diagnostics.StackTrace":"4.0.1"并且具有相同的结果.空FileName和0 FileNumber.我甚至开始了一个新项目,只复制他的代码和相同的结果.使用"System.Diagnostics.StackTrace"的空文件名和0文件号:"4.0.1"
更新::
追求我能想到的每一个选项,我在不同的工作站上试过这个.它工作正常.显然它在我的工作站上的东西是失败的......所以问题是环境并不是特定于包装.当我弄清楚问题是什么时,我会再次更新.
所以经过进一步的调查有趣的话.虽然它是环境,但它也特定于Net Core.在同一环境中的非Net Core应用程序中,StackTrace工作正常.但是,我在事件日志中遇到安全审核失败
A privileged service was called.
Service:
Server: Security
Service Name: -
Process:
Process ID: 0x55a0
Process Name: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe
Service Request Information:
Privileges: SeCreateGlobalPrivilege
and
A privileged service was called.
Service:
Server: Security
Service Name: -
Process:
Process ID: 0x5628
Process Name: …Run Code Online (Sandbox Code Playgroud) 我有两张桌子
A和B.
A B
----------------- -----------------
a_pk (int) b_pk (int)
a_name(varchar) a_pk (int)
b_name (varchar)
Run Code Online (Sandbox Code Playgroud)
我可以写一个查询
SELECT a.a_name, b.b_name
FROM a LEFT OUTER JOIN b ON a.a_pk = b.a_pk
Run Code Online (Sandbox Code Playgroud)
这将返回一个表a中所有内容的非独特列表,其表b加入了数据.对于列a,将显示重复项,其中不同的b记录共享共同的a_pk列值.
但我想要做的是从表A列a_name获取一个完整的值列表,并添加一个列,该列是表B的连接值的COUNT.
因此,如果a_pk = 1且a_name = test,并且在表b中有5条记录的a_pk值为1,那么我的结果集将是
a_name b_count
------ -------
test 5
Run Code Online (Sandbox Code Playgroud) 在有人评论之前已经在其他问题上回答过这个问题之前,我知道这一点......但是尽管我已经回顾了这些答案
甚至我自己的问题
我无法让我的查询返回带有null参数的值
我已经尝试简化我的代码,因此可以在这里看到.
我也试过这个
int? i = null;
SqlConnection connection = new SqlConnection(Properties.Settings.Default.connstring.ToString());
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandText = "Select * from view_nests where parent_pk = @parent_pk";
cmd.Parameters.AddWithValue("@parent_pk", i ?? Convert.DBNull);
cmd.Connection.Open();
var dataReader = cmd.ExecuteReader();
var dataTable = new DataTable();
dataTable.Load(dataReader);
cmd.Connection.Close();
Run Code Online (Sandbox Code Playgroud)
我尝试过这方面的变化
cmd.Parameters.AddWithValue("@parent_pk", DBNull.Value);
Run Code Online (Sandbox Code Playgroud)
我尝试过使用该查询
cmd.CommandText = "Select * from view_nests where parent_pk = @parent_pk or @parent_pk Is Null";
Run Code Online (Sandbox Code Playgroud)
我尝试将参数明确声明为可为空
cmd.Parameters.AddWithValue("@parent_pk", i ?? Convert.DBNull).IsNullable = true; …Run Code Online (Sandbox Code Playgroud) 我有一个类对象的列表
可以说这个类的结构是这样的
class DataEntity
{
public string col1 { get; set; }
public string col2 { get; set; }
public string col3 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以名单将是
List<DataEntity> list = new List<DataEntity>
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题,我需要遍历列表并修改特定属性的值..但我不知道在运行时需要修改什么属性。
所以可以说有一个方法可以转换列表,并且要修改的属性名称作为字符串值传入
public List<DataEntity> Convert (List<DataEntity> list, string propertyName, string appendedValue)
{
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何遍历该列表,并为输入的 propertyName 将 appendedValue 附加到该属性值
我知道我可以使用这样的反射来获取属性值
Type type = dataEntity.GetType();
foreach (PropertyInfo pi in type.GetProperties())
{
}
Run Code Online (Sandbox Code Playgroud)
但我不确定如何利用它来定位特定属性以在运行时追加。
c# ×5
asp.net-core ×1
count ×1
dbnull ×1
exception ×1
odbc ×1
sql ×1
sql-server ×1
sqlparameter ×1