相关疑难解决方法(0)

为什么表达树比反射更安全?

这个确定属性是否包含给定属性的最快方法问题的答案中,用户Darin Dimitrov假定表达式树比反射更安全.这是真的,如果是这样,为什么会这样呢?

.net reflection expression-trees

15
推荐指数
2
解决办法
2687
查看次数

检查PropertyDescriptor是否具有属性

我正在尝试检查属性是否已应用DataMemberAttribute(使用TypeDescriptor)

这就是我现在拥有的:

PropertyDescriptor targetProp = targetProps[i];

var has = argetProp.Attributes.Contains(
Attribute.GetCustomAttribute(typeof(DataMemberAttribute).Assembly,typeof(DataMemberAttribute)));
Run Code Online (Sandbox Code Playgroud)

问题是

Attribute.GetCustomAttribute(typeof(DataMemberAttribute).Assembly,typeof(DataMemberAttribute))
Run Code Online (Sandbox Code Playgroud)

返回null

.net c#

9
推荐指数
1
解决办法
5603
查看次数

如何动态创建lambda表达式

我们假设我有以下课程:

public class Show
{
    public string Language { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

根据这些信息,我的目标是创建一个这样的lambda表达式:

g => g.Language == lang && g.Name == name
Run Code Online (Sandbox Code Playgroud)

lang并且name是我想在创建表达式时添加为常量值的局部变量.

如您所见,编译的函数将是类型 Func<Genre, bool>

为了帮助您更清楚地理解,我想实现与此类似的东西:

string lang = "en";
string name = "comedy";
Genre genre = new Genre { Language = "en", Name = "comedy" };
Expression<Func<Genre, bool>> expression = CreateExpression(genre, lang, name);
// expression = (g => g.Language == "en" && g.Name == "comedy")
Run Code Online (Sandbox Code Playgroud)

我知道表达式树的存在,但我对这个主题几乎是新手,所以我甚至不知道如何开始.

这个问题可以解决吗?如何动态创建这样的表达式?

.net c# lambda

8
推荐指数
1
解决办法
369
查看次数

使用值反射获取所有属性

我编写了自定义属性属性并将其设置在我的类中的几个属性上.现在我想在运行时只获取具有此属性的属性,能够获取属性的值以及属性字段的值.你能帮我完成这项任务吗?感谢帮助

.net c# reflection

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

如何确定数据库中哪些字段指定为NOT NULL?

我的解决方案中有一个数据库优先,代码生成的EF数据项目.

我需要做的是确定我的模型中的哪些字段被定义为NOT NULL(即需要)在数据库中.这对于值类型(整数,浮点数,小数等)并不困难,因为如果DB允许空值,则它们被EF代码生成器定义为可空类型.

但是,当字段是引用类型时,我无法弄清楚如何确定字段是否定义为数据库中的NULL/ NOT NULL.

这似乎是一个显而易见的问题,但我无法通过Google或其他方式找到解决方案.使用EF模型时,如何在保存操作成功之前查询模型上是否需要填充哪些字段?

一种不同的方法

在重新访问这个问题之后,我想我会做一些进一步的研究.首先,通过Visual Studio添加实体,在单步执行EF向导后,.edmx生成了一个文件.我之前已多次访问此文件,并且我已更新并将表添加到此文件中.

今天,我决定在设计师中打开它并查看我的一些领域的一些属性.果然,我的nvarchar NOT NULL田地上有一个叫做的属性Nullable.

那么,我如何使用EF并获取Nullable属性设置为的实体的字段列表false

c# entity-framework entity-framework-6

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