我一直在构建一个使用Saleforce SOAP API的控制台应用程序,现在需要在Web应用程序中使用Salesforce API.
我是否正确地假设SOAP更适合非基于Web的应用程序,而REST更适合Web应用程序?
如果我在哪里创建一个包装器,用于从本地应用程序报告,或从我们的网站发布到salesforce,我是否应该公开REST和SOAP api,具体取决于应用程序是什么?或者我应该坚持使用一个?如果我只需要选择一个,我应该考虑哪些决定因素?
所以我正在阅读MSDN文档并遇到:
http://msdn.microsoft.com/en-us/library/sf0df423.aspx
使用using指令的别名有什么实际用途?
我得到了什么,我只是不明白为什么我想要使用它.
可能重复:
集合<T>与列表<T>您应该在接口上使用什么?
考虑这个方法 - 返回的变量myVar是a List<T>,但方法的返回类型MyMethod()是IEnumerable<T>:
public IEnumerable<T> MyMethod(string stuff)
{
var myVar = new List<T>();
//do stuff
return myVar;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想知道的是,如果返回myVar另一种类型是好的.
具体来说,就我的情况而言,'do stuff'通过a DataRow并将其中的项目分配给DataRow对象列表.我在其他地方也有类似的情况ICollection和IList返回类型.
我想要返回的原因IEnumerable或是ICollection因为我没有返回超过需要.但与此同时,这允许调用者将返回值转换为a,List如果需要这样做的话.
但是,我的return语句返回a List而不是方法的返回类型似乎很奇怪.这是正常做法吗?这样做有什么不对吗?
澄清(回应重复评论):
只是为了澄清,我很好奇的是,如果它是好的,在我的身体return语句返回一个List<T>,但这种方法管器具有返回类型的IEnumerable,或可能ICollection,Collection等...的东西不同比高于机构退货声明.
所以我刚看到这行代码:
Item = (int?)(int)row["Item"];
Run Code Online (Sandbox Code Playgroud)
它有什么理由不能成为:
Item = (int?)row["Item"];
Run Code Online (Sandbox Code Playgroud) 所以,我正在创建一个salesforce应用程序,目前正好点击沙盒帐户.
我们的生产和沙箱帐户在字段方面完全相同.
现在,当我在visual studio中创建我的Web引用时,在test.salesforce.com的配置文件中添加了一个URL,此URL也在WSDL中.
我可以更改配置中的URL以进行生产并让一切正常吗?我读过这个有冲突的想法.
所以在我的电脑上我只有Visual Studio 2010 Express.我需要编辑Visual Studio 2008项目,但需要将其保存在C#3.5中.
在我在2010年打开并意外升级之前,它会保留在2008还是C#3.5格式?
我意识到我无法使用.Net 2010功能,所以没问题.我只是想确定如果我使用2010年保存我的2008项目,我仍然可以在2008年打开它,它将正常工作.
我有这个代码:
MyObject Obj {get;set;}
var x = from xml in xmlDocument.Descendants("Master")
select new MyObject
{
PropOne = //code to get data from xml
PropTwo = //code to get data from xml
}
Run Code Online (Sandbox Code Playgroud)
其结果是var是IEnumerable<MyObject>,我需要使用foreach循环分配x到Obj:
foreach(var i in x)
{
Obj = i;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用LINQ语句而没有IEnumerable以这种方式返回?或者foreach像我一样使用循环是否正常?
我正在尝试创建一个扫描表中所有项目的过程,当满足三个条件时,它将更新某个值.这是我指定要更新的内容时的内容:
CREATE OR REPLACE PROCEDURE NoNullRatingsForFuture(IN_GAME NUMBER) AS
BEGIN
UPDATE GAMES
SET rating_id = 10
WHERE game_id = IN_GAME;
END NoNullRatingsForFuture;
Run Code Online (Sandbox Code Playgroud)
用法示例:
EXECUTE NoNullRatingsForFuture(7);
Run Code Online (Sandbox Code Playgroud)
但是,我想让程序扫描整个表,并更新它,如下所示:
CREATE OR REPLACE PROCEDURE NoNullRatingsForFuture AS
BEGIN
UPDATE GAMES
SET rating_id = 10
WHERE game_id = game_id
AND rating_id = NULL
AND release_date > SYSDATE;
END NoNullRatingsForFuture;
Run Code Online (Sandbox Code Playgroud)
用法示例:
EXECUTE NoNullRatingsForFuture;
Run Code Online (Sandbox Code Playgroud)
基本上,如果rating为null且日期高于当前日期,则将rating_id其更改为10.此外dd-month-yy,如果有帮助,release_date将以格式存储.
那个程序编译得很好,我可以执行正常,但rating_id仍然是空的.我究竟做错了什么?
所以我有这样的数据:
UserID CreateDate
1 10/20/2013 4:05
1 10/20/2013 4:10
1 10/21/2013 5:10
2 10/20/2012 4:03
Run Code Online (Sandbox Code Playgroud)
我需要按每个用户分组获取CreateDates之间的平均时间.我想要的结果是这样的:
UserID AvgTime(minutes)
1 753.5
2 0
Run Code Online (Sandbox Code Playgroud)
如何找到为用户分组返回的所有记录的CreateDates之间的区别?
编辑:
使用SQL Server 2012
我有这个查询,它返回一周中的几天.一周的日子是0-6(周一至周五).
select ID, DayOfWeek from MyTable
ID DayOfWeek
1 0
2 0
3 4
Run Code Online (Sandbox Code Playgroud)
有没有办法替换每个int DayOfWeek的别名?枚举不存储在数据库中,因此无法加入.
我希望能够编写一个查询,并让它看起来像这样:
ID DayOfWeek
1 Monday
2 Monday
3 Friday
Run Code Online (Sandbox Code Playgroud) 如果我执行以下操作:
var item2 = item1.MemberwiseClone();
item2.ID = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)
无论什么新东西Guid item2,它也会改变它item1.这是不正确的,因为a Guid是值类型?这种情况发生在Guid和Guid?.
c# ×7
sql ×3
.net ×2
salesforce ×2
sql-server ×2
casting ×1
collections ×1
linq-to-xml ×1
oracle ×1
plsql ×1
return ×1
return-type ×1
t-sql ×1