是否可以将对象集合传递给RIA数据服务查询?我在发送实体,Int或基本类型数组时没有问题,但只要我声明这样的方法
public void GetLessonsConflicts(Lesson[] lessons)
{
}
Run Code Online (Sandbox Code Playgroud)
我收到编译错误
"名为'GetLessonsConflicts'的操作不符合所需的签名.参数类型必须是实体类型或预定义的可序列化类型之一"
我只是在保存数据之前尝试在服务器端进行一些验证.我试过List,IEnumerable等.
谢谢
我正在寻找与WCF数据服务兼容的受支持的linq扩展方法的完整列表.
通过反复试验我发现First(Func)和Single(Func)不受支持,还有其他吗?
这让我对支持的内容非常了解,我只是不知道通过IQueryProvider实际翻译了什么.
我真的需要能够在WCF数据服务查询上执行'DISTINCT'.
据我所知,这样的功能不存在.我知道我可以在客户端的Linq查询中使用Distinct扩展方法,但它仍然保留了完整的结果集(在这种特殊情况下,这不是我想要的).
有任何想法吗?
有谁知道它是否可能,如果有的话,通过linqpad调用服务操作的语法是什么?
另外,当我使用linqpad调用它时,我可以使用命名参数吗?那将是很好的b/c我在服务操作中有很多参数,我不想指定每一个.
谢谢!
我有一个用MVC构建的网站,现在我想为这个网站构建一个API,让用户使用这个API来实现不同的网站,Web服务,插件和浏览器扩展.
我浏览了这篇文章,但还没有使用哪个.
有关我要构建的API的一般信息:
API的用户将拥有一个关键用户名和密码,以便能够使用API.
API将允许用户在验证此数据后向我的数据库添加内容.
API将允许用户将图像上传到我的服务器.
API需要友好的URL.
哪种技术适合我的情况?
还有助于我决定知道stackoverflow API背后的技术是什么?
我需要使用JMeter测试web-srvice.我用Thread-group 500创建了测试计划.我需要为每个线程传递参数的新值.我听说过"CSV数据集配置",但它不允许我想要的东西,因为如果我设置"共享模式"="所有线程",那么每个线程都会尝试从文件中读取每一行 - 我想通过第一个线程的文件中的第一个值,第二个线程的第二个值,依此类推.当然,我可以用一行创建500个文件,但这种方法很愚蠢.我怎么能以最好的方式做到这一点?谢谢.
我有一个运行在Entity Framework代码第一4.1提供程序之上的WCF数据服务.数据库非常庞大(一个关键表有7千3百万条记录,每月增长约10%)并且出现了相当大的性能问题.虽然对数据库进行分片,但这似乎是不可避免的.我的问题是,是否有人成功使用分片数据库实施EF,如果是,您有任何指导吗?
我正在使用WEB API ODATA和Telerik OpenAccess
这是OpenAccessBaseApiController.cs
public abstract partial class OpenAccessBaseApiController<TEntity, TContext> : ODataController
where TContext : OpenAccessContext, new()
{
protected IOpenAccessBaseRepository<TEntity, TContext> repository;
public virtual IQueryable<TEntity> Get()
{
var allEntities = repository.GetAll();
return allEntities;
}
/// <summary>
/// Creates a new entity based on the provided data
/// </summary>
/// <param name="entity">The new entity to be created</param>
/// <returns>HTTP Status:
/// - Accepted when operation is successful or
/// - MethodNotAllowed if the operation is disabled for this entity or …Run Code Online (Sandbox Code Playgroud) 我创建了一个应用程序来读取CSV文件,创建DataServiceContext并大量插入数据到我的远程ODataAPI服务器.
但是在运行导入30,000记录5分钟后,我发现应用程序仍在使用750MB的内存!
我有什么办法可以减少内存使用量吗?或者至少让它早点收集垃圾?它似乎没有实现IDisposable,我的google-fu失败了我.谢谢.
有谁知道如何在OData V4的metatdata中设置/读取基于词汇的注释来定义最大字符串长度之类的内容?
有一篇文章“ 客户端注释支持”,但没有显示任何示例代码,我不确定100%是否他们甚至在谈论数据注释。
它具有如下代码:
var person = dsc.People.ByKey("russellwhyte").GetValue();
// Try to get an annotation for a property
dsc.TryGetAnnotation<Func<ObservableCollection<string>>, string>(() => person.Emails, fullQualifiedTermName, qualifier, out annotation);
Run Code Online (Sandbox Code Playgroud)
但是它没有解释“ fullQualifiedTermName”或“ qualifier”使用什么。
我添加了“ odata.inculde-annotations = *”,但这似乎无济于事。
我也尝试了以下方法。
dsc.TryGetAnnotation<Func<string>, string>(() => person.FirstName, "System.ComponentModel.DataAnnotations", out annotation);
Run Code Online (Sandbox Code Playgroud)
但这只会返回null。
我从2012年开始在WCF数据服务中找到了“ 词汇表”,其中谈到了对验证元数据的支持。
我要试一下。
我希望在OData V4中有一种简单/更好的方法可以做到这一点。
Update 1
WCF词汇表示例在OData V4中不起作用,因为System.Web.Http.HttpConfiguration中缺少config.AnnotationsBuilder。
OData V4支持此处http://www.odata.org/vocabularies/所定义的词汇表,甚至还提供了我需要的“元数据注释可以为特定属性定义有效值范围”,但是似乎没有任何示例代码除了SAP https://blogs.sap.com/2013/10/07/vocabulary-based-annotations/之外的任何其他文章。
更新2
在查看TripPinService之后,我注意到它们在预算上有一些注释,如下所示。
<Property Name="Budget" Type="Edm.Single" Nullable="false">
<Annotation Term="Org.OData.Measures.V1.ISOCurrency" String="USD"/>
<Annotation Term="Org.OData.Measures.V1.Scale" Int="2"/>
</Property>
Run Code Online (Sandbox Code Playgroud)
幸运的是,该项目的源代码是ODataSamples TripPin。
在查看了服务之后,我发现我首先必须创建自己的xml词汇表文件。(ValidationVocabularies.xml) …
wcf-data-services odata data-annotations asp.net-web-api2 odata-v4
odata ×6
c# ×2
web-services ×2
api ×1
asp.net-mvc ×1
c#-4.0 ×1
dataservice ×1
jmeter ×1
linq ×1
linqpad ×1
odata-v4 ×1
rest ×1
sharding ×1
silverlight ×1